@yaegassy/coc-ansible v0.14.2
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.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"
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 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>
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
10 months ago
10 months ago
12 months ago
11 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago