@yaegassy/coc-ansible
v0.14.3
Published
ansible-language-server extension for coc.nvim
Downloads
85
Readme
coc-ansible
ansible-language-server extension for coc.nvim
Install
CocInstall:
:CocInstall @yaegassy/coc-ansiblescoped packages
vim-plug:
Plug 'yaegassy/coc-ansible', {'do': 'yarn install --frozen-lockfile'}Note
[!! Very important !!] Filetype related
The "filetype" must be
yaml.ansiblefor this extension to work.If you install ansible's vim plugin,
yaml.ansiblefiletype will be added automatically, which is very useful (e.g. pearofducks/ansible-vim or sheerun/vim-polyglot).You also need to set
g:coc_filetype_mapin.vimrc/init.vim.let g:coc_filetype_map = { \ 'yaml.ansible': 'ansible', \ }
Requirements (Tools)
- Ansible 2.9+
- Ansible Lint (required, unless you disable linter support)
- [TIPS]
coc-ansiblewill automatically disable the feature ifansible-lintis not found
- [TIPS]
- yamllint (optional)
If you also install
yamllint,ansible-lintwill detect it and incorporate into the linting process. Any findings reported byyamllintwill be exposed in coc.nvim as errors/warnings.
Bult-in install
coc-ansible allows you to create an extension-only "venv" and install ansible, ansible-lint and yamllint.
yamllint will be installed by setting ansible.builtin.isWithYamllint to true (default: false).
You can also specify the version of each tool. (setting: ansible.bultin.ansibleVersion, ansible.bultin.ansibleLintVersion, ansible.bultin.yamllintVersion)
The first time you use coc-ansible, if ansible, ansible-lint is not detected, you will be prompted to do a built-in installation.
You can also run the installation command manually.
:CocCommand ansible.builtin.installRequirementsToolsConfiguration options
ansible.enable: Enable coc-ansible extension, default:trueansible.disableProgressNotifications: Disable progress notifications from ansible-language-server, default:falseansible.builtin.isWithYamllint: Whether to install yamllint the built-in installer, default:falseansible.builtin.ansibleVersion: Version ofansiblefor built-in install, default:""ansible.builtin.ansibleLintVersion: Version ofansible-lintfor built-in install, default:""ansible.builtin.force: Whether to force builtin tools instead those in the PATH, default:falseansible.builtin.yamllintVersion: Version ofyamllintfor built-in install, default:""ansible.ansible.useFullyQualifiedCollectionNames: Always use fully qualified collection names (FQCN) when inserting a module name. Disabling it will only use FQCNs when necessary, default:trueansible.python.interpreterPath: Path to the python/python3 executable. This settings may be used to make the extension work with ansible and ansible-lint installations in a python virtual environment, default:""ansible.validation.enabled: Toggle validation provider. If enabled and ansible-lint is disabled, validation falls back to ansible-playbook --syntax-check, default:trueansible.validation.lint.enabled: Toggle usage of ansible-lint, default:trueansible.validation.lint.arguments: Optional command line arguments to be appended to ansible-lint invocation, default""ansible.completion.provideRedirectModules: Toggle redirected module provider when completing modules, default:trueansible.completion.provideModuleOptionAliases: Toggle alias provider when completing module options, default:trueansible.ansibleDoc.path: Path to the ansible-doc executable, default:ansible-docansible.ansibleDoc.enableSplitRight: Use vertical belowright for ansible-doc terminal window, default:trueansible.ansibleNavigator.path: Points to the ansible-navigator executable, default:"ansible-navigator"ansible.dev.serverPath: Absolute path to ansible language server module. If it is not set, use the extention's server module. (For develop and check), default:""ansibleServer.trace.server: Traces the communication between coc.nvim and the ansible language server, default:"off"
Commands
Command List:
:CocCommand [CommandName]
e.g. :CocCommand ansible.server.restart
ansible.builtin.installRequirementsTools: Installansible,ansible-lintandyamllint(optional) with extension's venv- It will be installed in this path:
- Mac/Linux:
~/.config/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/bin/ansible~/.config/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/bin/ansible-lint~/.config/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/bin/yamllint
- Windows:
~/AppData/Local/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/Scripts/ansible.exe~/AppData/Local/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/Scripts/ansible-lint.exe~/AppData/Local/coc/extensions/@yaegassy/coc-ansible-data/ansible/venv/Scripts/yamllint.exe
- Mac/Linux:
- [Note]
ansibleis a very large tool and will take some time to install
- It will be installed in this path:
ansible.server.restart: Restart ansible language serveransible.server.showMetaData: Show ansible-metadata for ansible language server | DEMOansible.server.resyncAnsibleInventory: Resync Ansible Inventory | DEMOansible.ansbileDoc.showInfo: Run theansible-doccommand in a terminal window with various options to display information about the plugins | DEMOansible.ansbileDoc.showSnippets: Run theansible-doccommand in a terminal window with various options to display a snippets of the plugins | DEMO
Example of command key mapping:
" Quickly view a list of all coc.nvim commands
nnoremap <silent> <C-p> :<C-u>CocCommand<CR>Code Actions
Example key mapping (Code Action related):
nmap <silent> ga <Plug>(coc-codeaction-line)Usage:
In the line with diagnostic message, enter the mapped key (e.g. ga) and you will see a list of code actions that can be performed.
Actions:
Ignoring rules for current line (# noqa [ruleId])| DEMO- Requires
ansible-lint"v6.8.1" or later.
- Requires
Show web documentation for [ruleId]| DEMO- Requires
ansible-lint"v6.8.1" or later.
- Requires
Thanks
License
MIT
This extension is built with create-coc-extension
