ืืขืจื. ืชืจืืื: ืืืืืจ ืืืงืืจื ื ืืชื ืขื ืืื ื'ืืฉ ืจืืกื, ืืจืืืืงื ื-VMware ืฉืขืื ืืขืืจ ืืืืจืืช ืืื CoreOS ื-Heptio, ืืืื ืื ืืืืจ ืฉืืชืฃ ืฉื Kubernetes alb-ingress-controller. ืืืืืจ ืืืืง ืืชืืื ืงืื ืฉืืืื ืืืืืช ืฉืืืืฉื ืืืื ืืืื ืืกื ืชืคืขืื "ืืืื ืกืงืื" ืฉืืขืืืคืื vim ืืคืืื ืืขืืื ืฉื ืืืื ืืขื ื ืืื ืฆื.
ืืืชืืื ืื ืืคืกืืื ืฉื YAML ืขืืืจ Kubernetes in vim? ืืืืืชื ืืื ืกืคืืจ ืฉืขืืช ืื ืืกืืื ืืืืื ืืืื ืฆืจืื ืืืืืช ืืฉืื ืืื ืืืคืจื ืืื? ืื ืืืื ืชืขืจืื ืชืืืืจืช ืืืืจื ืืืืื args
ะธ command
? ืืฉ ืืืฉืืช ืืืืืช! ืงื ืืงืฉืจ ืื Vim
(ืื ืืืืืจ ืืืงืืจื
ืฉืจืช ืฉืคื
ืฉืจืชื ืฉืคื (ืฉืจืชื ืฉืคื) ืืืืจ ืขื ืืืืืืืช ืฉื ืฉืคืืช ืชืื ืืช ืืขืืจืืื ื-IDE, ืฉืขืืืจื ืื ืืงืืืืื ืืื ืืจืืงืฆืื ืื ืขื ืื ืืืืฆืขืืช ืคืจืืืืงืื ืืืืื -
ืืื ืฉ-vim ืืขืืื ืืฆืืจื ืืืชืืืจืช, ืชืฆืืจื ืืืชืงืื ืืงืื ืฉืจืช ืฉืคื. ืฉืชื ืืฉืืืืช ืฉืื ื ืืืืจ ืื coc.vim
- ืืื ืืชืืกืฃ ืืคืืคืืืจื ืืืืชืจ ืืจืืข. ืืชื ืืืื ืืืชืงืื ืืืชื ืืืืฆืขืืช
" Use release branch (Recommend)
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Or build from source code by use yarn: https://yarnpkg.com
Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
ืืืชืืื coc
(ืืืื yaml-language-server) ืืืจืืฉ ืืชืงื ื ืฉื node.js:
curl -sL install-node.now.sh/lts | bash
ืืืฉืจ coc.vim
ืืืืืจ, ืืชืงื ืืช ืชืืกืฃ ืืฉืจืช coc-yaml
ืืืช vim:
:CocInstall coc-yaml
ืืืกืืฃ, ืกืืืจ ืืื ืื ืฉืชืจืฆื ืืืชืืื ืขื ืืชืฆืืจื coc-vim
, ืืืฆื
ืืืืจืช ืืืืื ืฉืจืช yaml-language
ืื coc
ืืืื ืืืฉืชืืฉ ื-yaml-language-server, ืืฉ ืืืงืฉ ืืื ื ืืืขืื ืืช ืืกืืืื ื-Kubernetes ืืขืช ืขืจืืืช ืงืืฆื YAML. ืื ื ืขืฉื ืขื ืืื ืขืจืืื coc-config
:
:CocConfig
ืืชืฆืืจื ืชืฆืืจื ืืืืกืืฃ kubernetes
ืขืืืจ ืื ืืงืืฆืื yaml
. ืื ื ืืฉืชืืฉ ืื ืืกืฃ ืืฉืจืช ืฉืคื ืขืืืจ golang
ืื ืืชืฆืืจื ืืืืืืช ืฉืื ื ืจืืืช ืื:
{
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod"],
"filetypes": ["go"]
}
},
"yaml.schemas": {
"kubernetes": "/*.yaml"
}
}
kubernetes
- ืฉืื ืฉืืืจ ืฉืืืืจ ืืฉืจืช ืืฉืคื ืืืืจืื ืืช ืกืืืืช Kubernetes ืืืชืืืช ืืืชืจ ืฉืืืืืจื ื yaml.schemas
ื ืืชื ืืืจืืื ืืื ืืชืืื ืืชืืื ืืืช ื ืืกืคืืช - ืืคืจืืื ื ืืกืคืื, ืจืื
ืืขืช ืชืืื ืืืฆืืจ ืงืืืฅ YAML ืืืืชืืื ืืืฉืชืืฉ ืืืฉืืื ืืืืืืืืช. ืืืืฆื +ืจืืื (ืื ืฉืืืื ืืืจ ืฉืืืืืจ ื-vim) ืืืืจ ืืืฆืื ืืช ืืฉืืืช ืืืชืืขืื ืืืืื ืื ืืืชืื ืืืงืฉืจ ืื ืืืื:
ืขืืื ืืื +ืจืืื ืื ืืืืจืชื inoremap <silent><expr> <c-space> coc#refresh()
. ืื ืื ืขืฉืืช ืืืช, ืจืื
ืืืืจืช ืืจืกืช ื-API ืฉื Kubernetes
ื ืืื ืืืชืืืช ืฉืืจืืช ืืื, yaml-language-server ื ืฉืื ืขื ืกืืืืืช Kubernetes 1.14.0. ืื ืืฆืืชื ืืจื ืืืืืจ ืืืืคื ืืื ืื ืกืืืื, ืื ืคืชืืชื server.ts
.
ืืื ืืืืืช ืืืชื ืืืืฉื ืฉืื, ืคืฉืื ืคืชื ืืช ืงืืืฅ YAML ืขื vim ืืืฆื ืืช ืืชืืืื ืขื yaml-language-server
.
ps aux | grep -i yaml-language-server
joshrosso 2380 45.9 0.2 5586084 69324 ?? S 9:32PM 0:00.43 /usr/local/Cellar/node/13.5.0/bin/node /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js --node-ipc --node-ipc --clientProcessId=2379
joshrosso 2382 0.0 0.0 4399352 788 s001 S+ 9:32PM 0:00.00 grep -i yaml-language-server
ืืชืืืื ืืจืืืื ืื ืขืืืจื ื ืืื ืชืืืื 2380: ืื ืืฉืชืืฉ vim ืืขืช ืขืจืืืช ืงืืืฅ YAML.
ืืคื ืฉืืชื ืืืื ืืจืืืช ืืงืืืช, ืืงืืืฅ ืืืืงื ื /Users/joshrosso/.config/coc/extensions/node_modules/coc-yaml/node_modules/yaml-language-server/out/server/src/server.js
. ืคืฉืื ืขืจืื ืืืชื ืขื ืืื ืฉืื ืื ืืขืจื KUBERNETES_SCHEMA_URL
, ืืืืืื, ืขืืืจ ืืจืกื 1.17.0:
// old 1.14.0 schema
//exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/garethr/kubernetes-json-schema/master/v1.14.0-standalone-strict/all.json";
// new 1.17.0 schema in instrumenta repo
exports.KUBERNETES_SCHEMA_URL = "https://raw.githubusercontent.com/instrumenta/kubernetes-json-schema/master/v1.17.0-standalone-strict/all.json";
ืชืืื ืืืจืกื ืฉืื ื ืขืฉื ืฉืืืืฉ coc-yaml
ืืืงืื ืืืฉืชื ื ืืงืื ืขืฉืื ืืืฉืชื ืืช. ืฉืืื ืื ืื ืฉืฉืื ืืชื ืืช ืืืืืจ ื garethr
ืขื instrumenta
. ื ืจืื ืื garethr
ืขืืจ ืืืขืืืื ืชืืืืื ืฉื.
ืืื ืืืืืง ืฉืืฉืื ืื ื ืื ืก ืืชืืงืฃ, ืจืื ืื โโืืืคืืข ืฉืื ืฉืื ืืื ืฉื ืงืืื [ืืืจืกืืืช ืงืืืืืช ืฉื Kubernetes]. ืืืืืื, ืืชืจืฉืื ืขืืืจ K8s 1.14 ืื ืืื
ืชืงืฆืืจ
ืื ื ืืงืืื ืฉืืืืืื ืืช ืืื ืชืฉืื ืืืชื ืืืื ื. YAMLing ืฉืื! ืืงืคื ืืืืืง ืืช ืืืืืจืื ืืืื ืืื ืืืืื ืืื ืืืชืจ ืืช ืืื ืืฉืืจืืช ืืืืืืจืื ืืืืืจ:
- coc-vim:
https://github.com/neoclide/coc.nvim ; - coc-yaml:
https://github.com/neoclide/coc-yaml .
ื .ื ืืืืชืจืื
ืืืฉ
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
kubebox ืืงืื ืืืืช ืืืจืืช ืขืืืจ Kubernetes "; - ยซ
ืขืืืจื ืืกืืฃ ืืขืืืื ืขื Kubernetes ืืืืฆืขืืช kubectl ".
ืืงืืจ: www.habr.com