development/tasks/neovim.yml

124 lines
3.7 KiB
YAML

- 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 + neovim_node_packages }}'
- 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/'
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',
}