- 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_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: 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: '{{ language_servers }}' - 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 color files copy: dest: '{{ xdg_data_dir }}/nvim/site/colors' src: 'files/nvim/colors' - name: setup neovim configuration files template: dest: '{{ item.dest }}' src: '{{ item.src }}' 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/python.lua.j2', dest: '{{ xdg_config_dir }}/nvim/after/ftplugin/python.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/auto-commands.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/auto-commands.lua', } - { src: 'templates/nvim/lua/keybindings.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/keybindings.lua', } - { src: 'templates/nvim/lua/lsp.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/lsp.lua', } - { src: 'templates/nvim/lua/nvim-cmp.lua.j2', dest: '{{ xdg_config_dir }}/nvim/lua/nvim-cmp.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', }