ansible-language-server extension for coc.nvim
CocInstall:
:CocInstall @yaegassy/coc-ansible
scoped packages
vim-plug:
Plug 'yaegassy/coc-ansible', {'do': 'yarn install --frozen-lockfile'}
-
The "filetype" must be
yaml.ansible
for this extension to work.If you install ansible's vim plugin,
yaml.ansible
filetype 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_map
in.vimrc/init.vim
.let g:coc_filetype_map = { \ 'yaml.ansible': 'ansible', \ }
- Ansible 2.9+
- Ansible Lint (required, unless you disable linter support)
- [TIPS]
coc-ansible
will automatically disable the feature ifansible-lint
is not found
- [TIPS]
- yamllint (optional)
If you also install
yamllint
,ansible-lint
will detect it and incorporate into the linting process. Any findings reported byyamllint
will be exposed in coc.nvim as errors/warnings.
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.installRequirementsTools
ansible.enable
: Enable coc-ansible extension, default:true
ansible.disableProgressNotifications
: Disable progress notifications from ansible-language-server, default:false
ansible.builtin.isWithYamllint
: Whether to install yamllint the built-in installer, default:false
ansible.builtin.ansibleVersion
: Version ofansible
for built-in install, default:""
ansible.builtin.ansibleLintVersion
: Version ofansible-lint
for built-in install, default:""
ansible.builtin.force
: Whether to force builtin tools instead those in the PATH, default:false
ansible.builtin.yamllintVersion
: Version ofyamllint
for 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:true
ansible.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:true
ansible.validation.lint.enabled
: Toggle usage of ansible-lint, default:true
ansible.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:true
ansible.completion.provideModuleOptionAliases
: Toggle alias provider when completing module options, default:true
ansible.ansibleDoc.path
: Path to the ansible-doc executable, default:ansible-doc
ansible.ansibleDoc.enableSplitRight
: Use vertical belowright for ansible-doc terminal window, default:true
ansible.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"
Command List:
:CocCommand [CommandName]
e.g. :CocCommand ansible.server.restart
ansible.builtin.installRequirementsTools
: Installansible
,ansible-lint
andyamllint
(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]
ansible
is 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-doc
command in a terminal window with various options to display information about the plugins | DEMOansible.ansbileDoc.showSnippets
: Run theansible-doc
command 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>
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
MIT
This extension is built with create-coc-extension