Compare commits

..

2 Commits

Author SHA1 Message Date
0b6014266b 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.
2022-11-08 13:30:05 +00:00
2694c76a67 Remove all references of Pack command
The previous commit removed all command related to minpac, including
`Pack` which was still being referenced in `vimrc`.
2022-11-08 13:23:22 +00:00
3 changed files with 163 additions and 157 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
# CamelCase to under_score to mixedCase
# 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
git:
repo: https://github.com/k-takata/minpac.git
dest: pack/minpac/opt/minpac
- include_vars: plugins.yaml
- name: (neo)vim install pip packages
pip:
name:
- cmake-language-server
- cmakelint
- compdb
- 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
- name: remove minpac directory
when: ansible_os_family != "Windows"
file:
path: '{{vim_config_dir}}/pack/minpac'
state: absent
- name: remove minpac directory
when: ansible_os_family == "Windows"
win_chocolatey: name=nodejs state=latest
- name: (neo)vim install apt packages
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
win_file:
path: '{{vim_config_dir}}/pack/minpac'
state: absent

158
vimrc
View File

@ -15,11 +15,40 @@ endif
set runtimepath+=~/.config/work
set packpath+=~/.config/work
" tabline.vim - sanely numbered tabs
Pack 'mkitt/tabline.vim'
" Markdown fenced code block languages
let g:markdown_fenced_languages =
\ ['cpp', 'c', 'cmake', 'console', 'sh', 'vim', 'python', 'yaml']
" coc.nvim Conqueror of Completion
Pack 'neoclide/coc.nvim', {'branch': 'release'}
" reStructedText enable code styles
let g:rst_style = 1
" reStructuredText code block languages
let g:rst_syntax_code_list = {
\ 'vim': ['vim'],
\ 'java': ['java'],
\ 'c': ['c'],
\ 'cpp': ['cpp', 'c++'],
\ 'console': ['console'],
\ 'python': ['python']
\ }
" Enable builtin syntax folding
let g:xml_syntax_folding = 1
let g:sh_fold_enabled = 1
if wsl#isDetected()
" Make gx work in WSL
let g:netrw_browsex_viewer='cmd.exe /C start'
endif
if tmux#inSession()
" Seemless vim/tmux pane navigation
packadd vim-tmux-navigator
let g:tmux_navigator_no_mappings = 1
" Enable focus events when in tmux session
packadd vim-tmux-focus-events
endif
" coc.nvim
let g:coc_global_extensions = [
\ 'coc-clangd',
\ 'coc-cmake',
@ -41,14 +70,7 @@ if has("win32")
endif
let g:coc_default_semantic_highlight_groups = 0
" ultisnips - snippet engine
Pack 'SirVer/ultisnips'
Pack 'honza/vim-snippets'
" vimomni - Completion for vimscript
Pack 'vim-scripts/vimomni', {'type': 'opt'}
" ale - Asynchronous Lint Engine
Pack 'w0rp/ale'
" ale
let g:ale_sign_error = '▸'
let g:ale_sign_warning = '▸'
let g:ale_echo_msg_format = '[%linter%] %s (%code%)'
@ -56,134 +78,40 @@ let g:ale_linters = {'c': [], 'cpp': []}
let g:ale_cmake_cmakelint_options =
\ '-convention/filename,-package/consistency,-package/stdargs'
" Version control differences in the sign column
Pack 'mhinz/vim-signify'
" vim-signify
let g:signify_sign_change = '~'
" Conflict marker utilities
Pack 'rhysd/conflict-marker.vim'
" vim-textobj-user - library for creating text objects
Pack 'kana/vim-textobj-user'
" vim-textobj-entire - Entire file text object
" vim-textobj-entire
let g:textobj_entire_no_default_key_mappings = 1
Pack 'kana/vim-textobj-entire'
xmap a% <Plug>(textobj-entire-a)
omap a% <Plug>(textobj-entire-a)
xmap i% <Plug>(textobj-entire-i)
omap i% <Plug>(textobj-entire-i)
" vim-textobj-parameter - Parameter text object
Pack 'sgur/vim-textobj-parameter'
" vim-textobj-uri - URI text object
Pack 'jceb/vim-textobj-uri'
" vim-textobj-comment - Comment text object
Pack 'glts/vim-textobj-comment'
" vim-textobj-comment
omap a/ <Plug>(textobj-comment-a)
xmap a/ <Plug>(textobj-comment-a)
omap i/ <Plug>(textobj-comment-i)
xmap i/ <Plug>(textobj-comment-i)
" vim-textobj-sentence - Improved sentence text object
Pack 'reedes/vim-textobj-sentence'
" vim-commentary - toggle comments
Pack 'tpope/vim-commentary'
" vim-surround - edit delimiters
Pack 'tpope/vim-surround'
" vim-repeat - better dot command
Pack 'tpope/vim-repeat'
" vim-fugitive - git wrapper
Pack 'tpope/vim-fugitive'
" vim-eunuch - unix command warppers
Pack 'tpope/vim-eunuch'
" vim-vinegar - improved directory browser
Pack 'tpope/vim-vinegar'
if wsl#isDetected()
" Make gx work in WSL
let g:netrw_browsex_viewer='cmd.exe /C start'
endif
" vim-abolish - CamelCase to under_score to mixedCase
" TODO: Copy the good bit remove this plugin
Pack 'tpope/vim-abolish'
" vim-unimpaired - for pairs of tasks
Pack 'tpope/vim-unimpaired'
" vim-speeddating - sane date manipulation
Pack 'tpope/vim-speeddating'
" vim-endwise - wisely add end{if,function}, fork with cmake support
Pack 'godbyk/vim-endwise', {'rev': 'patch-1'}
" vim-jdaddy - text object & formatting for json
Pack 'tpope/vim-jdaddy'
" vim-projectionist - granular project configuration
Pack 'tpope/vim-projectionist'
" fzf.vim - Fuzzy finder
Pack 'junegunn/fzf'
Pack 'junegunn/fzf.vim'
" fzf.vim
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\ }
Pack 'kbenzie/note.vim'
" note.vim
let g:note_directory = '~/Sync/Notes'
if !has('win32')
" Seemless vim/tmux pane navigation
Pack 'christoomey/vim-tmux-navigator'
let g:tmux_navigator_no_mappings = 1
" Enable focus events when in tmux session
Pack 'tmux-plugins/vim-tmux-focus-events'
endif
" replay macros with the enter key
Pack 'wincent/replay'
" vim-matchit - Improved % matching
Pack 'andymass/vim-matchup'
" vim-matchit
let g:matchup_matchparen_offscreen = {'method': 'status_manual'}
" vim-table-mode - Easy table manipulation
Pack 'dhruvasagar/vim-table-mode'
" vim-table-mode
let g:table_mode_map_prefix = '<leader>t'
let g:table_mode_toggle_map = 'M'
" DoxygenToolkit.vim - documentation stubs
Pack 'vim-scripts/DoxygenToolkit.vim', {'type': 'opt'}
" DoxygenToolkit.vim
let g:DoxygenToolkit_commentType = 'C++'
" markdown fenced code block languages
let g:markdown_fenced_languages =
\ ['cpp', 'c', 'cmake', 'console', 'sh', 'vim', 'python', 'yaml']
" reStructedText enable code styles
let g:rst_style = 1
" reStructuredText code block languages
let g:rst_syntax_code_list = {
\ 'vim': ['vim'],
\ 'java': ['java'],
\ 'c': ['c'],
\ 'cpp': ['cpp', 'c++'],
\ 'console': ['console'],
\ 'python': ['python']
\ }
" Python folding
Pack 'kalekundert/vim-coiled-snake'
" Enable builtin syntax folding
let g:xml_syntax_folding = 1
let g:sh_fold_enabled = 1
" xterm-color-table.vim - view term and hex colors
Pack 'guns/xterm-color-table.vim'
" Syntax plugins
Pack 'kbenzie/vim-spirv'
" vim-spirv
let g:spirv_current_id_highlight = 'ctermbg=234, guibg=#1c1c1c'
Pack 'rperier/vim-cmake-syntax'
Pack 'tikhomirov/vim-glsl'
Pack 'beyondmarc/hlsl.vim'
Pack 'frasercrmck/opencl.vim'
Pack 'asciidoc/vim-asciidoc'
Pack 'mustache/vim-mustache-handlebars'
Pack 'joshglendenning/vim-caddyfile'
Pack 'kbenzie/vim-khr'
Pack 'jrozner/vim-antlr'