development/tasks/neovim.yml

131 lines
4.5 KiB
YAML

- 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"