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.

  • SpunkyIceke42@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    10 months ago

    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.deOP
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      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?

  • hisbaan@lemm.ee
    link
    fedilink
    arrow-up
    1
    ·
    10 months ago

    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.deOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      10 months ago

      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
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

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

        • this_is_router@feddit.deOP
          link
          fedilink
          arrow-up
          2
          ·
          10 months ago

          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