Support question: lazy.vim and ansible-language-server

I'm trying to use LazyVim https://www.lazyvim.org/ to create and edit ansible playbooks and roles, but for the live of my I don't understand how to enable ansible-language-server.

The installation of lazyvim went flawless and after starting nvim I used the command :Mason to install:

  • ansible-language-server
  • ansible-lint
  • yaml-language-server
  • yamllint

but still, when opening a task or playbook file in nvim, i don't get any of that cool features like snippets and automatic syntax checking like I hoped.

Can anyone give me a hint how to enable those? Mason says the plugins are installed, is it only a problem of nvim not recognizing the filetype as ansible? Do I need to enable some plugins via .config/nvim/lua/plugins? I'm out of my element here, help would be much appreciated.

4 points · 7 comments · view on lemmy.world

7 Comments

SpunkyIceke42@lemmy.world · 2 pts · 2y (2 replies)

I created an auto command for this

-- Ansible file pattern
  vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile", "BufEnter" }, {
    group = vim.api.nvim_create_augroup("Ansible", { clear = true }),
    pattern = {
      "*/roles/*/*/*.yaml",
      "*/roles/*/*/.yml",
      "main.yml",
      "main.yaml",
      "Debian*.yaml",
      "Debian*.yml",
      "*/ansible-devbox/*.yaml",
      "*/ansible-devbox/*.yml",
      "group_vars/*.yml",
      "group_vars/*.yaml",
      "files/*.yaml",
      "files/*.yml",
      "environments/*.yaml",
      "environments/*.yml,",
    },
    callback = function()
      vim.opt.filetype = "yaml.ansible"
    end,
  }),
this_is_router@feddit.de · 1 pts · 2y (1 reply)

it's working now but ill try that. looks like a better solution then my current .config/nvim/ftdetect/ansible.vim hack. your snipped goes into .config/nvim/init.lua i guess?

SpunkyIceke42@lemmy.world · 1 pts · 2y

It’s going in my .config/nvim/lua/config/autocmds.lua

I use lazyvim

hisbaan@lemm.ee · 1 pts · 2y (3 replies)

Can you paste the output of :LspInfo when opening an ansible file? Wait a few seconds after opening the file to give the language server time to load

this_is_router@feddit.de · 1 pts · 2y (2 replies)

LspInfo

 Language client log: /home/me/.local/state/nvim/lsp.log
 Detected filetype:   yaml
 
 1 client(s) attached to this buffer: 
 
 Client: yamlls (id: 1, bufnr: [1])
 	filetypes:       yaml, yaml.docker-compose
 	autostart:       true
 	root directory:  Running in single file mode.
 	cmd:             /home/me/.local/share/nvim/mason/bin/yaml-language-server --stdio
 
 Configured servers list: lua_ls, yamlls, bashls, ansiblels, tsserver, jsonls

Looks like the file is recognized as yaml but not as ansible.

hisbaan@lemm.ee · 1 pts · 2y (1 reply)

Try putting # vim:ft=yaml.ansible at the top of your file then re-opening it

this_is_router@feddit.de · 2 pts · 2y

that work, but since I don't want to touch all my yaml files, I looked into the ftdetect file I already created and saw an error in my path definition.

its working now. last thing i haven't found out is, how to tell nvim to check syntax periodically and not only when saving. other then that it works pretty well. thank you