coc-ansible
coc-ansible copied to clipboard
ansible-language-server extension for coc.nvim
coc-ansible
ansible-language-server extension for coc.nvim

Install
CocInstall:
:CocInstall @yaegassy/coc-ansible
scoped packages
vim-plug:
Plug 'yaegassy/coc-ansible', {'do': 'yarn install --frozen-lockfile'}
Note
[!! Very important !!] Filetype related
-
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', \ }
Requirements (Tools)
- 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.
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.installRequirementsTools
Configuration options
-
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.ansibleLint.arguments
: Command line arguments to be passed to ansible-lint, default:""
-
ansible.ansibleLint.enabled
: Enable linting with ansible-lint on document open/save, default:true
-
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.python.interpreterPath
: Path to the Python interpreter executable. Particularly important if you are using a Python virtual environment. Leave blank to use Python from PATH. In coc-ansible, the default value is blank, default:""
-
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"
Commands
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 server -
ansible.server.showMetaData
: Show ansible-metadata for ansible language server | DEMO -
ansible.server.resyncAnsibleInventory
: Resync Ansible Inventory | DEMO -
ansible.ansbileDoc.showInfo
: Run theansible-doc
command in a terminal window with various options to display information about the plugins | DEMO -
ansible.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>
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:
Thanks
License
MIT
This extension is built with create-coc-extension