development/tasks/neovim.yml
2023-08-19 14:10:58 +02:00

134 lines
4.1 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: '{{ neovim_plugins }}'
- name: install neovim node package
become: true
npm:
name: neovim
global: true
# Note that the "python-lsp-server", "python-lsp-ruff" and "neovim" python
# packages should be installed to the corresponding virtualenv as well.
- name: install language servers
become: true
package:
name: '{{ item }}'
state: present
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/'
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',
}
- {
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',
}