Switch over to managing plugins with Ansible

The `tasks.yaml` has been updated to include the new variables file
`plugins.yaml` which defines the `plugin_dir` and `plugins` variables.
These are in turn used by config/local> to manage the plugin list
outwith (neo)vim.
This commit is contained in:
Kenneth Benzie 2022-11-08 13:25:14 +00:00
parent 2694c76a67
commit 5972ec6aa8
2 changed files with 120 additions and 42 deletions

110
plugins.yaml Normal file
View File

@ -0,0 +1,110 @@
---
plugin_dir: '{{vim_config_dir}}/pack/managed'
plugins:
# ======================== Completion & Diagnostics ==========================
# Conqueror of Completion
- repo: neoclide/coc.nvim
branch: release
# Snippet engine & snippets
- repo: SirVer/ultisnips
- repo: honza/vim-snippets
# Completion for vimscript
- repo: vim-scripts/vimomni
mode: opt
# Asynchronous Lint Engine
- repo: w0rp/ale
# Version control differences in the sign column
- repo: mhinz/vim-signify
# Conflict marker utilities
- repo: rhysd/conflict-marker.vim
# Doxygen documentation stubs
- repo: vim-scripts/DoxygenToolkit.vim
mode: opt
# Easy table manipulation
- repo: dhruvasagar/vim-table-mode
# ============================= User Interface ===============================
# Sanley numbered tabs in tabline
- repo: mkitt/tabline.vim
# Fuzzy finder
# TODO: Still necessary?
- repo: junegunn/fzf
- repo: junegunn/fzf.vim
# Replay macros with the enter key
- repo: wincent/replay
# Improved % matching
- repo: andymass/vim-matchup
# Forgot about this...
- repo: kbenzie/note.vim
# View term and hex colors
- repo: guns/xterm-color-table.vim
# ================================ Text Objects ==============================
# Library for creating text objects
- repo: kana/vim-textobj-user
# TODO: Doesn't work with nvim
- repo: kana/vim-textobj-entire
# Text object for function parameters
- repo: sgur/vim-textobj-parameter
# Text object for URI's
- repo: jceb/vim-textobj-uri
# Text object for comment blocks
- repo: glts/vim-textobj-comment
# Text object for sentences
- repo: reedes/vim-textobj-sentence
# ================================== Tim Pope ================================
# Toggle comments
- repo: tpope/vim-commentary
# Edit delimiters
- repo: tpope/vim-surround
# Better dot command
- repo: tpope/vim-repeat
# Git wrapper
- repo: tpope/vim-fugitive
# Unix command warppers
- repo: tpope/vim-eunuch
# Improved directory browser
- repo: tpope/vim-vinegar
# PascalCase to under_score to camelCase
# TODO: Copy the good bit remove this plugin
- repo: tpope/vim-abolish
# Mappings for pairs of tasks
- repo: tpope/vim-unimpaired
# Sane date manipulation
- repo: tpope/vim-speeddating
# Wisely add end{if,function} fork with cmake support
- repo: godbyk/vim-endwise
branch: patch-1
# Text object & formatting for json
- repo: tpope/vim-jdaddy
# Granular project configuration
- repo: tpope/vim-projectionist
# ================================== tmux ====================================
# Seemless vim/tmux pane navigation
- repo: 'christoomey/vim-tmux-navigator'
mode: opt
# Enable focus events when in tmux session
- repo: 'tmux-plugins/vim-tmux-focus-events'
mode: opt
# ================================= Syntax ===================================
# Python folding
- repo: kalekundert/vim-coiled-snake
- repo: kbenzie/vim-spirv
- repo: rperier/vim-cmake-syntax
- repo: tikhomirov/vim-glsl
- repo: beyondmarc/hlsl.vim
- repo: frasercrmck/opencl.vim
- repo: asciidoc/vim-asciidoc
- repo: mustache/vim-mustache-handlebars
- repo: joshglendenning/vim-caddyfile
- repo: kbenzie/vim-khr
- repo: jrozner/vim-antlr

View File

@ -1,45 +1,13 @@
--- ---
- name: (neo)vim clone minpac - include_vars: plugins.yaml
git:
repo: https://github.com/k-takata/minpac.git
dest: pack/minpac/opt/minpac
- name: (neo)vim install pip packages - name: remove minpac directory
pip: when: ansible_os_family != "Windows"
name: file:
- cmake-language-server path: '{{vim_config_dir}}/pack/minpac'
- cmakelint state: absent
- compdb - name: remove minpac directory
- vim-vint
- yamllint
state: latest
extra_args: --user
- name: (neo)vim install node.js Linux
when: ansible_system == "Linux"
include_tasks: nodejs-linux.yaml
- name: (neo)vim install node.js macOS
when: ansible_os_family == "Darwin"
homebrew: name=node state=latest
- name: (neo)vim install node.js Windows
when: ansible_os_family == "Windows" when: ansible_os_family == "Windows"
win_chocolatey: name=nodejs state=latest win_file:
path: '{{vim_config_dir}}/pack/minpac'
- name: (neo)vim install apt packages state: absent
when: ansible_distribution == 'Ubuntu' and
ansible_distribution_release == '20.04'
become: true
apt:
name:
- clangd-12
state: latest
- name: (neo)vim install clangd alternative
when: ansible_distribution == 'Ubuntu' and
ansible_distribution_release == '20.04'
become: true
alternatives:
name: clangd
path: /usr/bin/clangd-12
link: /usr/local/bin/clangd
priority: 120