alkaa/roles/nvim/tasks/main.yml

86 lines
2.3 KiB
YAML

---
- name: Install neovim package
ansible.builtin.package:
name:
- neovim
- ripgrep
- git
- xclip
state: present
become: true
tags: [always, setup]
- name: Create a config directory if it doesn't exist
ansible.builtin.file:
path: ~/.config/nvim
state: directory
mode: '0755'
tags: [always, setup]
- name: Server specific nvim tasks
tags: server
block:
- name: Copy over config
ansible.builtin.copy:
src: init_server.lua
dest: ~/.config/nvim/init.lua
mode: '0755'
- name: PC specific nvim tasks
tags: pc
block:
- name: Copy over config
ansible.builtin.copy:
src: init_pc.lua
dest: ~/.config/nvim/init.lua
mode: '0755'
- name: Copy over lua modules
ansible.builtin.copy:
src: lua
dest: ~/.config/nvim/
mode: '0755'
- name: Install language servers
tags: setup
become: true
ansible.builtin.package:
name:
- lua-language-server # Lua
- texlab # Tex
- pyright # Python
- typescript-language-server # JavaScript, TypeScript
- ccls # C, C++
- yaml-language-server # YAML
- ansible-lint # partly required for ansible
- haskell-language-server # Haskell
# TODO csharp-ls dotnet tool
- name: Install language server from AUR
tags: setup
block:
- name: Enable user to use sudo pacman without password
become: true
ansible.builtin.lineinfile:
path: /etc/sudo.conf
line: 'max ALL=(ALL) NOPASSWD: /usr/bin/pacman'
state: present
validate: 'visudo -cf %s'
- name: Install language server from AUR
kewlfft.aur.aur:
use: paru
state: present
name:
- ansible-language-server # Ansible
- vscode-langservers-extracted # HTML, CSS
- codelldb-bin # C/C++/Rust Debugger
always:
- name: Disable user to use sudo pacman without password
become: true
ansible.builtin.lineinfile:
path: /etc/sudo.conf
line: 'max ALL=(ALL) NOPASSWD: /usr/bin/pacman'
state: absent
validate: 'visudo -cf %s'