--- - name: Install (Archlinux) block: - name: Install packages (Archlinux) become: true pacman: name: - neovim - python-pynvim - base-devel - cmake - clang - npm - ripgrep - name: Install linters (Archlinux) become: true pacman: name: - ansible-lint - flake8 - mypy - python-pylint - python-black - shellcheck - name: Install language servers with pacman (Archlinux) become: true pacman: name: - bash-language-server - lua-language-server - texlab - name: Install language servers with npm (Archlinux) become: true npm: name: '@ansible/ansible-language-server' global: true state: present when: ansible_facts['distribution'] == 'Archlinux' - name: Install (Debian) block: - name: Install neovim with pip (Debian) pip: name: neovim extra_args: --user - name: Install packages (Debian) become: true apt: name: - python3-pynvim - build-essential - python3-dev - cmake - clang - npm - ripgrep - name: Install linters (Debian) become: true apt: name: - ansible-lint - flake8 - mypy - pylint3 - shellcheck - name: Install language servers with apt (Debian) become: true apt: name: - lua-language-server - texlab - name: Install language servers with npm (Debian) become: true npm: name: - bash-language-server - '@ansible/ansible-language-server' global: true state: present when: ansible_facts['distribution'] == 'Debian' - name: Install neovim-remote pip: name: neovim-remote extra_args: --user - name: Make sure needed directories exist file: path={{ item.path }} state=directory mode={{ item.mode }} with_items: - {path: '~/.config/nvim', mode: '0755'} - {path: '~/.config/nvim/lua', mode: '0755'} - name: Copy configs copy: src={{ item.src }} dest={{ item.dest }} mode=0644 with_items: - {src: 'init.lua', dest: '~/.config/nvim/init.lua'} - {src: 'flake8', dest: '~/.flake8'} - {src: 'pylintrc', dest: '~/.pylintrc'} - name: Copy lua configs copy: src: lua dest: ~/.config/nvim/ mode: 0644 - name: Run PackerSync command: nvim --headless -c 'autocmd User PackerComplete quitall' -c PackerSync # TODO: changed_when changed_when: false