--- - name: Ensure neovim configuration directories exist ansible.builtin.file: path: "{{ item }}" state: directory mode: "0755" loop: - "{{ xdg_config_dir }}/nvim/" - "{{ xdg_config_dir }}/nvim/lua" - "{{ xdg_config_dir }}/nvim/after" - "{{ xdg_config_dir }}/nvim/after/ftplugin" - "{{ xdg_data_dir }}/nvim/site" - "{{ xdg_data_dir }}/nvim/site/pack" - "{{ xdg_data_dir }}/nvim/site/pack/default" - "{{ xdg_data_dir }}/nvim/site/pack/default/start" - name: Remove old neovim packages ansible.builtin.file: path: "{{ item }}" state: absent loop: - "{{ xdg_data_dir }}/nvim/site/pack/default/start/catpuccin" - "{{ xdg_data_dir }}/nvim/site/pack/default/start/vim-colors-xcode" # Note that helptags may need to be regenerated (see `:h helptags`) - name: Clone neovim packages ansible.builtin.git: repo: "{{ item.url }}" dest: "{{ xdg_data_dir }}/nvim/site/pack/default/start/{{ item.name }}" update: true version: '{{ item.version | default("HEAD") }}' force: true # some maintainers overwrite existing tags :/ loop: "{{ neovim_plugins }}" - name: Install neovim node package become: true community.general.npm: name: neovim global: true - name: Remove old neovim configuration file ansible.builtin.file: path: "{{ xdg_config_dir }}/nvim/init.vim" state: absent - name: Remove coc.nvim extension ansible.builtin.file: path: "{{ xdg_data_dir }}/nvim/site/pack/default/start/coc.nvim" state: absent - name: Setup neovim configuration files ansible.builtin.template: dest: "{{ item.dest }}" src: "{{ item.src }}" mode: "0755" loop: - src: "templates/nvim/ftplugin/bash.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/bash.lua" - src: "templates/nvim/ftplugin/css.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/css.lua" - src: "templates/nvim/ftplugin/html.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/html.lua" - src: "templates/nvim/ftplugin/htmldjango.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/htmldjango.lua" - src: "templates/nvim/ftplugin/javascript.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/javascript.lua" - src: "templates/nvim/ftplugin/json.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/json.lua" - src: "templates/nvim/ftplugin/lua.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/lua.lua" - src: "templates/nvim/ftplugin/markdown.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/markdown.lua" - src: "templates/nvim/ftplugin/python.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/python.lua" - src: "templates/nvim/ftplugin/rst.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/rst.lua" - src: "templates/nvim/ftplugin/scss.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/scss.lua" - src: "templates/nvim/ftplugin/sh.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/sh.lua" - src: "templates/nvim/ftplugin/yaml.lua.j2" dest: "{{ xdg_config_dir }}/nvim/after/ftplugin/yaml.lua" - src: "templates/nvim/init.lua.j2" dest: "{{ xdg_config_dir }}/nvim/init.lua" - src: "templates/nvim/lua/lsp.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/lsp.lua" - src: "templates/nvim/lua/options.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/options.lua" - src: "templates/nvim/lua/tree-sitter.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/tree-sitter.lua" - src: "templates/nvim/lua/git-signs.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/git-signs.lua" - src: "templates/nvim/lua/lua-line.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/lua-line.lua" - src: "templates/nvim/lua/telescope.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/_telescope.lua" - src: "templates/nvim/lua/indent-blankline.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/indent-blankline.lua" - src: "templates/nvim/lua/nvim-tree.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/_nvim-tree.lua" - src: "templates/nvim/lua/colorscheme.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/colorscheme.lua" - src: "templates/nvim/lua/source-link.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/_source-link.lua" - src: "templates/nvim/lua/filetype.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/_filetype.lua" - src: "templates/nvim/lua/diagnostic.lua.j2" dest: "{{ xdg_config_dir }}/nvim/lua/diagnostic.lua"