- name: ensure neovim configuration directories exist file: path: '{{ item }}' state: directory loop: - '{{ xdg_config_dir }}/nvim/' - '{{ xdg_config_dir }}/nvim/lua' - '{{ xdg_config_dir }}/nvim/after' - '{{ 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: clone neovim packages git: repo: '{{ item.url }}' dest: '{{ xdg_data_dir }}/nvim/site/pack/default/start/{{ item.name }}' update: true version: '{{ item.version|default("HEAD") }}' loop: '{{ vim_plugins }}' - name: install pynvim package pip: name: - neovim - pynvim - name: install language servers become: true npm: name: '{{ item }}' global: true loop: - pyright - ansible-language-server - yaml-language-server - typescript-language-server - name: remove old neovim configuration file file: path: '{{ xdg_config_dir }}/nvim/init.vim' state: absent - name: remove coc.nvim extension file: path: '{{ xdg_data_dir }}/nvim/site/pack/default/start/coc.nvim' state: absent - name: setup neovim configuration files file: path: '{{ item.dest }}' src: '{{ item.src }}' state: link force: true loop: - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/colors', dest: '{{ xdg_data_dir }}/nvim/site/colors', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/ftplugin', dest: '{{ xdg_config_dir }}/nvim/after/ftplugin', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/init.lua', dest: '{{ xdg_config_dir }}/nvim/init.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/auto-commands.lua', dest: '{{ xdg_config_dir }}/nvim/lua/auto-commands.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/keybindings.lua', dest: '{{ xdg_config_dir }}/nvim/lua/keybindings.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/lsp.lua', dest: '{{ xdg_config_dir }}/nvim/lua/lsp.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/nvim-cmp.lua', dest: '{{ xdg_config_dir }}/nvim/lua/nvim-cmp.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/options.lua', dest: '{{ xdg_config_dir }}/nvim/lua/options.lua', } - { src: '{{ ansible_env.HOME }}/dotfiles/nvim/lua/tree-sitter.lua', dest: '{{ xdg_config_dir }}/nvim/lua/tree-sitter.lua', }