docs: Add Ansible language documentation (#20087)
Co-authored-by: Peter Tripp <peter@zed.dev>
This commit is contained in:
parent
9e49894ed6
commit
7c72929f0b
3 changed files with 77 additions and 0 deletions
|
@ -56,6 +56,7 @@
|
||||||
# Language Support
|
# Language Support
|
||||||
|
|
||||||
- [All Languages](./languages.md)
|
- [All Languages](./languages.md)
|
||||||
|
- [Ansible](./languages/ansible.md)
|
||||||
- [AsciiDoc](./languages/asciidoc.md)
|
- [AsciiDoc](./languages/asciidoc.md)
|
||||||
- [Astro](./languages/astro.md)
|
- [Astro](./languages/astro.md)
|
||||||
- [Bash](./languages/bash.md)
|
- [Bash](./languages/bash.md)
|
||||||
|
|
|
@ -4,6 +4,7 @@ Zed supports hundreds of programming languages and text formats. Some work out-o
|
||||||
|
|
||||||
## Languages with Documentation
|
## Languages with Documentation
|
||||||
|
|
||||||
|
- [Ansible](./languages/ansible.md)
|
||||||
- [AsciiDoc](./languages/asciidoc.md)
|
- [AsciiDoc](./languages/asciidoc.md)
|
||||||
- [Astro](./languages/astro.md)
|
- [Astro](./languages/astro.md)
|
||||||
- [Bash](./languages/bash.md)
|
- [Bash](./languages/bash.md)
|
||||||
|
|
75
docs/src/languages/ansible.md
Normal file
75
docs/src/languages/ansible.md
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
# Ansible
|
||||||
|
|
||||||
|
Support for Ansible in Zed is provided via a community-maintained [Ansible extension](https://github.com/kartikvashistha/zed-ansible).
|
||||||
|
|
||||||
|
- Tree-sitter: [zed-industries/tree-sitter-yaml](https://github.com/zed-industries/tree-sitter-yaml)
|
||||||
|
- Language Server: [ansible/vscode-ansible](https://github.com/ansible/vscode-ansible/tree/main/packages/ansible-language-server)
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### File detection
|
||||||
|
|
||||||
|
By default, to avoid mishandling non-Ansible YAML files, the Ansible Language is not associated with any file extensions by default. To change this behavior you can add a `"file_types"` section to the Zed settings inside your project (`.zed/setttings.json`) or your Zed user settings (`~/.config/zed/settings.json`) to match your folder/naming conventions. For example:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"file_types": {
|
||||||
|
"Ansible": [
|
||||||
|
"**.ansible.yml",
|
||||||
|
"**.ansible.yaml",
|
||||||
|
"**/defaults/*.yml",
|
||||||
|
"**/defaults/*.yaml",
|
||||||
|
"**/meta/*.yml",
|
||||||
|
"**/meta/*.yaml",
|
||||||
|
"**/tasks/*.yml",
|
||||||
|
"**/tasks/*.yml",
|
||||||
|
"**/tasks/*.yaml",
|
||||||
|
"**/handlers/*.yml",
|
||||||
|
"**/handlers/*.yaml",
|
||||||
|
"**/group_vars/*.yml",
|
||||||
|
"**/group_vars/*.yaml",
|
||||||
|
"**/playbooks/*.yaml",
|
||||||
|
"**/playbooks/*.yml",
|
||||||
|
"**playbook*.yaml",
|
||||||
|
"**playbook*.yml"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Feel free to modify this list as per your needs.
|
||||||
|
|
||||||
|
### LSP Configuration
|
||||||
|
|
||||||
|
LSP options for this extension can be configured under Zed's settings file. To get the best experience, add the following configuration under the `"lsp"` section in your `~/.zed/settings.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"lsp": {
|
||||||
|
// Note, the Zed Ansible extension prefixes all settings with `ansible`
|
||||||
|
// so instead of using `ansible.ansible.path` use `ansible.path`.
|
||||||
|
"ansible-language-server": {
|
||||||
|
"settings": {
|
||||||
|
"ansible": {
|
||||||
|
"path": "ansible"
|
||||||
|
},
|
||||||
|
"executionEnvironment": {
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
"python": {
|
||||||
|
"interpreterPath": "python3"
|
||||||
|
},
|
||||||
|
"validation": {
|
||||||
|
"enabled": true,
|
||||||
|
// To enable linting, manually install ansible-lint and make sure it is your PATH
|
||||||
|
"lint": {
|
||||||
|
"enabled": true,
|
||||||
|
"path": "ansible-lint"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
This config was conveniently adopted from [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/blob/ad32182cc4a03c8826a64e9ced68046c575fdb7d/lua/lspconfig/server_configurations/ansiblels.lua#L6-L23).
|
||||||
|
|
||||||
|
A full list of options/settings, that can be passed to the server, can be found at the project's page [here](https://github.com/ansible/vscode-ansible/blob/5a89836d66d470fb9d20e7ea8aa2af96f12f61fb/docs/als/settings.md).
|
||||||
|
Feel free to modify option values as needed.
|
Loading…
Add table
Add a link
Reference in a new issue