Compare commits

...

57 Commits

Author SHA1 Message Date
00e30facd3 Disable Node, Perl, and Ruby providers
I never used these so disable attempting to load them.
2024-03-02 10:48:07 +00:00
e378b83549 Update nvim-qt GuiFont setting 2023-12-09 11:09:32 +00:00
1de326471c Switch to vim-argumentative, remove vim-textobj-parameter 2023-11-23 23:22:15 +00:00
aab402fa73 Disable vim-spirv settings that are slow in large files 2023-09-13 16:50:59 +01:00
586141cb14 Fix todo (and other) snippets
coc-snippets stopped accepting the multiline python code in the todo
(and other) snippets, this fixes an `UnexpectedIndentation` exception.
2023-07-27 17:53:20 +01:00
f8407f959f Fix cpp commentstring, its a lua setting now... 2023-07-16 18:43:13 +01:00
97c7c974cf Add plugin Vim-Jinja2-Syntax 2023-06-28 14:08:14 +01:00
35acaa6cb2 Don't prompt for ultisnips in coc.nvim 2023-06-16 10:18:41 +01:00
3334451c2a Add workaround for coc-yaml's Ansible failings 2023-04-25 20:55:31 +01:00
d29cfc6aab Remove support for _template snippets 2023-03-30 15:28:42 +01:00
024268db74 Remove argparse from Python main snippet 2023-03-30 15:01:53 +01:00
0c515161b0 Add coc.nvim mapping for references used 2023-02-15 16:58:03 +00:00
525f6c2a5f Add editorconfig plugin 2023-02-15 16:57:39 +00:00
0d4dab892e Don't ignore case in command line file completions 2023-01-26 17:52:11 +00:00
24de16b587 Drop UltiSnips and move to coc-snippets
Also change the completion confirm mapping to <TAB> and make the
priority of snippets higher.
2023-01-25 00:40:41 +00:00
226765f88a Disable coc.nvim inlay hints globally 2023-01-19 12:17:20 +00:00
20c3c27bd7 Drop ale plugin and config 2023-01-13 22:46:29 +00:00
877d90dd90 Fix windows switching mappings when not in tmux 2023-01-09 23:20:15 +00:00
8f578862ef Add vim-bundle-mako plugin for mako template language 2022-11-25 14:13:07 +00:00
9cc65d5e1f Remove comments from individual syntax plugins 2022-11-25 14:12:55 +00:00
86659d8db6 Don't use signcolumn=number 2022-11-25 12:33:33 +00:00
e066388627 Fix statusline light highlight colors 2022-11-11 11:06:56 +00:00
5457b54a3a Merge plugins.yaml into tasks.yaml
Having `tasks.yaml` depend on `plugins.yaml` not work, except when
running on `localhost` which is not always the case.
2022-11-08 15:36:17 +00:00
5972ec6aa8 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:57:02 +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
ee5110efd8 Remove minpac in preparation for using Ansible 2022-11-08 11:21:08 +00:00
330329ef2b Replace ad hoc conflict markers with plugin 2022-11-07 14:27:13 +00:00
32610db521 Make gx work in WSL 2022-11-06 11:21:32 +00:00
4c142d2fa5 Only setup cursor shape in vim, not nvim
Neovim already changes cursor shape by default, there's no need to
override it.
2022-11-06 11:12:06 +00:00
cde38c5469 Make CocInlayHint look like Comment 2022-10-31 11:48:44 +00:00
dfc26e9c40 Disable coc-powershell integrated console 2022-10-29 11:44:15 +01:00
5476d9ec86 Fix coc.nvim change of default first selection 2022-10-25 11:08:25 +01:00
78ae575efe Disable clangd inlay type hints 2022-10-13 10:45:01 +01:00
3577aa13bc Drop some coc-yaml schemas 2022-09-09 22:49:07 +01:00
2ce3d322ca Add coc-powershell on Windows only 2022-06-15 22:15:23 +01:00
27c42a6a92 Don't use GUI tabs in neovim-qt 2022-06-15 22:15:23 +01:00
61ce53bfd3 Don't conceal things in json 2022-06-08 13:56:37 +01:00
d0af1c7116 Fix Doxygen @param highlight
There are two forms of `@param`:

* `@param <name> <description>`
* `@param[<use>] <name> <description>`

Prior to this patch only the latter was highlighting `<name>` as a
special comment, now both forms do this.
2022-05-31 10:59:28 +01:00
ec2b973fc0 Update schemastore URLs 2022-05-22 15:57:11 +01:00
98b48377cd Add GitLab CI schema paths 2022-05-04 14:14:03 +01:00
eb9579e1b6 Add more ansible tasks lsp matches 2022-04-30 13:31:29 +01:00
a689039ae2 Add yaml.schemas not matches by default 2022-04-30 09:38:25 +01:00
3da17559e9 Update minpac submodule 2022-04-29 21:58:31 +01:00
68c699882d Use Source Code Pro 10 on Windows GUI 2022-04-29 21:57:05 +01:00
51c56a8633 Fix glitch in StatusLineTerm highlight group 2022-04-22 15:53:01 +01:00
14d34e0b6b Don't set formatexpr globally, only in specific filetypes 2022-04-14 10:50:52 +01:00
fd31549a32 Add coc-docker to list of global extensions 2022-02-26 17:25:09 +00:00
d66ff687d4 Install node.js dependency for coc.nvim 2022-02-19 14:39:20 +00:00
db5ebc701d Bump unmap Y version check 2022-02-18 19:51:29 +00:00
e6e3a10c87 Don't unmap Y before nvim 0.5
This version check might need some refinement, not actually sure when it
was introduced but it's deffo not in 0.4.4.
2022-02-15 10:53:58 +00:00
8277ad04ab Add <> to % matches in cpp filetype 2022-02-03 14:25:41 +00:00
caa83e88d2 Undo neovims default mapping of Y to y$ 2022-01-14 20:03:07 +00:00
177dbad101 Use ! to silence font warning on Windows
See https://github.com/equalsraf/neovim-qt/issues/732 for more context.
2021-12-22 12:05:16 +00:00
d7c1bdd27c Fix bug in #tmux#isOption()
Actually use `a:option` instead of `'set-clipboard'` string when
comparing the tmux option value. This hasn't been an issue because the
only use of the function happens to be checking the value of
`'set-clipboard'`.
2021-12-16 23:06:03 +00:00
775d07414c Use package name lists 2021-12-15 00:31:50 +00:00
49051cff43 Only install clangd-12 on Ubuntu 20.04 2021-11-19 22:34:46 +00:00
8ffdfd41cd Move main.yaml to tasks.yaml 2021-11-19 21:49:13 +00:00
33 changed files with 364 additions and 291 deletions

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "pack/minpac/opt/minpac"]
path = pack/minpac/opt/minpac
url = https://github.com/k-takata/minpac.git

View File

@@ -27,18 +27,15 @@ class Comment(object):
endglobal
snippet todo "TODO commment"
`!p comment=Comment()
snip.rv=comment.before()`TODO${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
`!p comment=Comment();snip.rv=comment.before()`TODO${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
endsnippet
snippet fixme "FIXME comment"
`!p comment=Comment()
snip.rv=comment.before()`FIXME${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
`!p comment=Comment();snip.rv=comment.before()`FIXME${1/.+/(/}$1${1/.+/)/}: $0`!p snip.rv=comment.after()`
endsnippet
snippet note "NOTE comment"
`!p comment=Comment()
snip.rv=comment.before()`NOTE: $0`!p snip.rv=comment.after()`
`!p comment=Comment();snip.rv=comment.before()`NOTE: $0`!p snip.rv=comment.after()`
endsnippet
global !p

View File

@@ -1,13 +1,3 @@
snippet _template "help file template"
*`!p snip.rv = snip.fn`* For Vim version 8.0 Last change: `!p
from datetime import datetime
snip.rv = datetime.now().strftime('%B %d, %Y')`
$0
vim:tw=78:ts=8:ft=help:norl:
endsnippet
snippet s "help section"
==============================================================================
${1:1}. ${2:Section}`!p

View File

@@ -3,13 +3,8 @@ snippet #! "Shebang"
endsnippet
snippet main "Python main stub"
from argparse import ArgumentParser
def main():
parser = ArgumentParser()
$0
args = parser.parse_args()
${0:pass}
if __name__ == '__main__':

View File

@@ -1,6 +1,5 @@
function! s:set_lit_cfg_filetype()
set filetype=python
ALEDisableBuffer
endfunction
au BufNewFile,BufReadPost lit.cfg call s:set_lit_cfg_filetype()

1
after/ftplugin/cpp.lua Normal file
View File

@@ -0,0 +1 @@
vim.bo.commentstring = '//%s'

View File

@@ -45,7 +45,7 @@ if exists('g:c_doxygen') && g:c_doxygen
" Match: @param name description. @retval name description.
" ^^^^ ^^^^
syn region cDoxygenSpecial matchgroup=cDoxygenComment start='@\(param\(\[\(\|in\|out\|in,out\)\]\)\|retval\)\=\s\+' end='\(\s\|$\)' contained display
syn region cDoxygenSpecial matchgroup=cDoxygenComment start='@\(param\(\[\(\|in\|out\|in,out\)\]\)\?\|retval\)\=\s\+' end='\(\s\|$\)' contained display
" Match: @tparam name description.
" ^^^^

View File

@@ -1,3 +1,4 @@
hi link jsonKeyword Function
hi link jsonNull Constant
hi link jsonQuote Delimiter
setlocal conceallevel=0

View File

@@ -1,16 +0,0 @@
" Description: Expand snippet on file creation.
" Attempt to expand the _template snippet if this is a new file.
" https://noahfrederick.com/log/vim-templates-with-ultisnips-and-projectionist
function! snippet#template() abort
" Return if non-empty buffer or file exists.
if !(line('$') == 1 && getline('$') ==# '') || filereadable(expand('%'))
return
endif
" Attempt to expand the _template snippet.
execute "normal! i_template\<C-r>=UltiSnips#ExpandSnippet()\<CR>"
if g:ulti_expand_res == 0
" Expansions failed, undo insert.
silent! undo
endif
endfunction

View File

@@ -16,6 +16,6 @@ function! tmux#isOption(option, value) abort
if !tmux#inSession()
return 0
endif
let l:set_clipboard = trim(system('tmux show-options -g '.a:option))
return l:set_clipboard ==# 'set-clipboard '.a:value
let l:option = trim(system('tmux show-options -g '.a:option))
return l:option ==# a:option.' '.a:value
endfunction

3
autoload/wsl.vim Normal file
View File

@@ -0,0 +1,3 @@
function! wsl#isDetected() abort
return $WSLENV !=# ''
endfunction

View File

@@ -1,8 +1,81 @@
{
"cmake.lsp.enable": true,
"diagnostic.enableHighlightLineNumber": false,
"diagnostic.errorSign": "▸",
"diagnostic.hintSign": "▸",
"diagnostic.infoSign": "▸",
"diagnostic.warningSign": "▸",
"diagnostic.errorSign": "▸",
"diagnostic.enableHighlightLineNumber": false
"inlayHint.enable": false,
"powershell.integratedConsole.showOnStartup": false,
"snippets.priority": 100,
"suggest.noselect": true,
"yaml.schemas": {
"https://gitlab.com/gitlab-org/gitlab/-/raw/master/app/assets/javascripts/editor/schema/ci.json": [
".gitlab-ci.yml",
".gitlab/ci.yml",
".gitlab/ci/*.yml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible-lint-config.json": [
".ansible-lint",
".config/ansible-lint.yml",
".config/ansible-lint.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible-navigator.json": [
"ansible-navigator.yml",
"ansible-navigator.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/execution-environment.json": [
"execution-environment.yml",
"execution-environment.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/galaxy.json": [
"galaxy.yml",
"galaxy.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/inventory.json": [
"inventory.yaml",
"inventory.yml",
"inventory/*.yml",
"inventory/*.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/meta-runtime.json": [
"meta/runtime.yml",
"meta/runtime.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/molecule.json": [
"molecule/*/molecule.yml",
"molecule/*/molecule.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/playbook.json": [
"playbooks/*.yml",
"playbooks/*.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/requirements.json": [
"requirements.yml",
"requirements.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/rulebook.json": [
"rulebooks/*.yml",
"rulebooks/*.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/tasks.json": [
"tasks/*.yml",
"tasks/*.yaml",
"handlers/*.yml",
"handlers/*.yaml"
],
"https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/vars.json": [
"playbooks/vars/*.yml",
"playbooks/vars/*.yaml",
"vars/*.yml",
"vars/*.yaml",
"defaults/*.yml",
"defaults/*.yaml",
"host_vars/*.yml",
"host_vars/*.yaml",
"group_vars/*.yml",
"group_vars/*.yaml"
]
},
"snippets.ultisnips.pythonPrompt": false
}

View File

@@ -126,7 +126,9 @@ if has('gui_running') || &t_Co == 256
call s:hi('SpellLocal', '5', '', '')
call s:hi('SpellRare', '3', '', '')
call s:hi('StatusLine', '15', '233', '')
call s:hi('StatusLineTerm', '15', '233', '')
call s:hi('StatusLineNC', '', '235', '')
call s:hi('StatusLineTermNC', '', '235', '')
call s:hi('TabLine', '246', '235', 'bold')
call s:hi('TabLineFill', '', '235', '')
call s:hi('TabLineSel', '248', '', 'bold')
@@ -200,11 +202,6 @@ if has('gui_running') || &t_Co == 256
call s:hi('Important', '220', '', 'bold')
call s:hi('Research', '202', '', 'bold')
call s:hi('ALEError', '160', '', '')
call s:hi('ALEWarning', '129', '', '')
call s:hi('ALEErrorSign', '160', '233', 'bold')
call s:hi('ALEWarningSign', '129', '233', 'bold')
call s:hi('CocErrorSign', '160', '233', '')
call s:hi('CocErrorFloat', '160', '235', '')
call s:hi('CocWarningSign', '129', '233', '')
@@ -213,6 +210,7 @@ if has('gui_running') || &t_Co == 256
call s:hi('CocInfoFloat', '8', '235', '')
call s:hi('CocHintSign', '33', '233', '')
call s:hi('CocHintFloat', '33', '235', '')
call s:hi('CocInlayHint', '8', '', '')
call s:hi('SyntasticErrorSign', '160', '233', 'bold')
call s:hi('SyntasticWarningSign', '129', '233', 'bold')

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,6 @@
" Add <> to % matches
setlocal matchpairs+=<:>
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#clang_format()
setlocal formatexpr=format#clang_format()
endif

View File

@@ -1,3 +1,3 @@
if has('pythonx')
set formatexpr=format#yapf()
setlocal formatexpr=format#yapf()
endif

View File

@@ -1,7 +1,8 @@
if exists(':GuiFont')
if platform#is_windows()
GuiFont Consolas:h9
else
GuiFont Source\ Code\ Pro:h9
endif
GuiFont! CaskaydiaCove\ Nerd\ Font\ Mono:h9
endif
if exists(':GuiTabline')
" Don't use GUI tabline, matches terminal tabline.
GuiTabline 0
endif

2
gvimrc
View File

@@ -6,7 +6,7 @@
set guioptions=aegi
if platform#is_windows()
set guifont=Consolas:h10:cDEFAULT
set guifont=Source\ Code\ Pro:h10
else
" Set default font
set guifont=Source\ Code\ Pro\ Medium\ 9

View File

@@ -1,37 +0,0 @@
# yaml-language-server: $schema=https://json.schemastore.org/ansible-playbook.json
---
- hosts: localhost
tasks:
- name: Clone minpac repository
git:
repo: https://github.com/k-takata/minpac.git
dest: pack/minpac/opt/minpac
- name: Install (neo)vim pip packages
pip:
name: '{{item}}'
state: latest
extra_args: --user
with_items:
- cmake-language-server
- cmakelint
- compdb
- vim-vint
- yamllint
- name: Install (neo)vim apt packages
when: ansible_os_family == "Debian"
become: true
apt:
name: '{{item}}'
state: latest
with_items:
- clangd-12
- name: Install (neo)vim clangd alternative
when: ansible_os_family == "Debian"
become: true
alternatives:
name: clangd
path: /usr/bin/clangd-12
link: /usr/local/bin/clangd
priority: 120

28
nodejs-linux.yaml Normal file
View File

@@ -0,0 +1,28 @@
---
- name: nodejs get json containing latest version
uri:
url: https://nodejs.org/dist/index.json
register: latest
- name: nodejs create directory for downloaded package
file:
state: directory
dest: ~/.local/src
- name: nodejs download latest package
get_url:
url: 'https://nodejs.org/dist/{{latest.json[0].version}}/node-{{latest.json[0].version}}-linux-x64.tar.gz'
dest: ~/.local/src/node.tar.gz
- name: nodejs extract downloaded package
unarchive:
src: ~/.local/src/node.tar.gz
dest: ~/.local/src
remote_src: true
- name: nodejs create symlink links
file:
state: link
src: '~/.local/src/node-{{latest.json[0].version}}-linux-x64/bin/{{item}}'
dest: '~/.local/bin/{{item}}'
with_items: [corepack, node, npm, npx]

View File

@@ -12,19 +12,12 @@ augroup benieAugroup
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
\ | exe "normal! g'\"" | endif
" Highlight conflict markers in any filetype
au FileType * call matchadd('Todo', '^\(<<<<<<<\s.*\||||||||\|=======\|>>>>>>>\s.*\)$')
" Update `Last change: <date>` on write & go back previous cursor position
au FileType help au BufWritePre <buffer>
\ 1s/Last change: \zs.*$/\=strftime('%Y %b %d')/e|norm!``
" Read template into buffer then send line 1 to the black hold register
au BufNewFile todo.md read ~/.vim/templates/skeleton.todo.md | 1delete _
" Attempt to expand snippet named `_template` if it exists
au BufNewFile * silent! call snippet#template()
" Do the same when filetype changes to help
au FileType help silent! call snippet#template()
" Augment vim-signify by modifying it's autocmds
au User SignifyAutocmds call do#signify()

View File

@@ -1,11 +1,3 @@
" minpac
function! s:minpac_init() abort
packadd minpac | call minpac#init() | source $MYVIMRC
endfunction
command! PackUpdate call s:minpac_init() | call minpac#update('', {'do': 'call minpac#status()'})
command! PackStatus call s:minpac_init() | call minpac#status()
command! PackClean call s:minpac_init() | call minpac#clean()
" Sort Python Imports
command! ISort call do#isort()

View File

@@ -1,12 +1,14 @@
" coc.nvim
nmap <silent> <leader>fi <Plug>(coc-fix-current)
nmap <silent> <leader>gd <Plug>(coc-definition)
nmap <silent> <leader>gt <Plug>(coc-type-definition)
nmap <silent> <leader>sd <Plug>(coc-diagnostic-info)
nmap <silent> <leader>gr <Plug>(coc-references)
nmap <silent> K :call do#show_documentation()<CR>
nmap <silent> <C-n> <Plug>(coc-diagnostic-next)
nmap <silent> <C-p> <Plug>(coc-diagnostic-prev)
inoremap <silent><expr> <TAB> coc#pum#visible() ? coc#pum#confirm() : "\<TAB>"
nnoremap <silent> <leader>fi <Plug>(coc-fix-current)
nnoremap <silent> <leader>gd <Plug>(coc-definition)
nnoremap <silent> <leader>gt <Plug>(coc-type-definition)
nnoremap <silent> <leader>sd <Plug>(coc-diagnostic-info)
nnoremap <silent> <leader>gr <Plug>(coc-references)
nnoremap <silent> <leader>gu <Plug>(coc-references-used)
nnoremap <silent> K :call do#show_documentation()<CR>
nnoremap <silent> <C-n> <Plug>(coc-diagnostic-next)
nnoremap <silent> <C-p> <Plug>(coc-diagnostic-prev)
if has('nvim')
" Make nvim :terminal more like vim :terminal
@@ -64,7 +66,12 @@ nnoremap k gk
nnoremap <leader>w :w!<CR>
" Switch panes in a tmux aware way
if !has('win32')
if !tmux#inSession() || has('win32')
nnoremap <silent> <C-h> <C-w>h
nnoremap <silent> <C-j> <C-w>j
nnoremap <silent> <C-k> <C-w>k
nnoremap <silent> <C-l> <C-w>l
else
nnoremap <silent> <C-h> :TmuxNavigateLeft<CR>
nnoremap <silent> <C-j> :TmuxNavigateDown<CR>
nnoremap <silent> <C-k> :TmuxNavigateUp<CR>
@@ -84,11 +91,6 @@ if !has('win32')
tnoremap <silent> <C-w>k <C-w>N:TmuxNavigateUp<CR>
tnoremap <silent> <C-w>l <C-w>N:TmuxNavigateRight<CR>
endif
else
nnoremap <silent> <C-h> <C-w>h
nnoremap <silent> <C-j> <C-w>j
nnoremap <silent> <C-k> <C-w>k
nnoremap <silent> <C-l> <C-w>l
endif
" Quick tabs
@@ -115,6 +117,10 @@ else
noremap <leader>p "+p
noremap <leader>P "+P
endif
if has('nvim-0.5.2')
" Undo neovim's default mapping of Y to y$
unmap Y
endif
" Quickly access spelling menu
inoremap <C-s> <C-g>u<C-X>s

View File

@@ -112,6 +112,8 @@ set isfname-=:
set hlsearch incsearch
" Set ignore search case unless mixed
set ignorecase smartcase
" Don't ignore case in command line file completions
set nofileignorecase
" Allow buffers with changes to be hidden
set hidden
@@ -152,11 +154,7 @@ set formatoptions+=rq
" Always show the signcolum
if exists('&signcolumn')
try
set signcolumn=number
catch /E474/
set signcolumn=yes
endtry
endif
" Enable modeline
@@ -176,7 +174,7 @@ if &t_Co == 8 && $TERM !~# '^linux\|^Eterm'
endif
" Change cursor dependant on current mode
if has('cursorshape') && has('unix') && !has('gui_running')
if !has('nvim') && has('cursorshape') && has('unix') && !has('gui_running')
if $TMUX ==# '' && $ITERM_PROFILE !=# ''
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

View File

@@ -3,12 +3,12 @@ scriptencoding utf-8
set laststatus=2
" Define color variables.
let g:statusline#light_green = {'fg': ['235', '#080808'], 'bg': [ '35', '#0087ff']}
let g:statusline#light_blue = {'fg': ['235', '#080808'], 'bg': [ '33', '#0087ff']}
let g:statusline#light_orange = {'fg': ['235', '#080808'], 'bg': ['209', '#eb754d']}
let g:statusline#light_red = {'fg': ['235', '#080808'], 'bg': ['124', '#af0000']}
let g:statusline#light_grey = {'fg': ['250', '#bcbcbc'], 'bg': ['236', '#303030']}
let g:statusline#light_violet = {'fg': ['235', '#080808'], 'bg': [ '99', '#986fec']}
let g:statusline#light_green = {'fg': ['235', '#262626'], 'bg': [ '35', '#00af5f']}
let g:statusline#light_blue = {'fg': ['235', '#262626'], 'bg': [ '33', '#0087ff']}
let g:statusline#light_orange = {'fg': ['235', '#262626'], 'bg': ['209', '#ff875f']}
let g:statusline#light_red = {'fg': ['235', '#262626'], 'bg': ['124', '#af0000']}
let g:statusline#light_grey = {'fg': ['235', '#262626'], 'bg': ['246', '#949494']}
let g:statusline#light_violet = {'fg': ['235', '#262626'], 'bg': [ '99', '#875fff']}
let g:statusline#dark_white = {'fg': [ '15', '#ffffff'], 'bg': ['233', '#121212']}
let g:statusline#dark_yellow = {'fg': ['179', '#dfaf5f'], 'bg': ['233', '#121212']}
let g:statusline#dark_grey = {'fg': ['244', '#808080'], 'bg': ['233', '#121212']}

121
tasks.yaml Normal file
View File

@@ -0,0 +1,121 @@
---
- set_fact:
plugin_dir: '{{vim_config_dir}}/pack/managed'
plugins:
# ====================== Completion & Diagnostics ========================
# Conqueror of Completion
- repo: neoclide/coc.nvim
branch: release
# Snippet collection
- repo: honza/vim-snippets
# Completion for vimscript
- repo: vim-scripts/vimomni
mode: opt
# 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 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
# Text object & bindings for arguments
- repo: PeterRincker/vim-argumentative
# ================================ 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 =================================
- repo: editorconfig/editorconfig-vim
- 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
- repo: sophacles/vim-bundle-mako
- repo: Glench/Vim-Jinja2-Syntax
- 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_file:
path: '{{vim_config_dir}}/pack/minpac'
state: absent

223
vimrc
View File

@@ -11,141 +11,16 @@ if has('syntax') && !exists('g:syntax_on')
syntax enable
endif
if exists('*minpac#init')
" When minpac is loaded define the Pack command to add packages.
command! -nargs=+ Pack call minpac#add(<args>)
else
" Otherwise define the Pack command to do nothing.
command! -nargs=+ Pack
endif
" Append work config to runtimepath and packpath.
set runtimepath+=~/.config/work
set packpath+=~/.config/work
" tabline.vim - sanely numbered tabs
Pack 'mkitt/tabline.vim'
" Disable unused providers
let g:loaded_node_provider = 0
let g:loaded_perl_provider = 0
let g:loaded_ruby_provider = 0
" coc.nvim Conqueror of Completion
Pack 'neoclide/coc.nvim', {'branch': 'release'}
let g:coc_global_extensions = [
\ 'coc-clangd',
\ 'coc-cmake',
\ 'coc-css',
\ 'coc-html',
\ 'coc-jedi',
\ 'coc-json',
\ 'coc-marketplace',
\ 'coc-pyright',
\ 'coc-ultisnips',
\ 'coc-vimlsp',
\ 'coc-yaml',
\]
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'
let g:ale_sign_error = '▸'
let g:ale_sign_warning = '▸'
let g:ale_echo_msg_format = '[%linter%] %s (%code%)'
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'
let g:signify_sign_change = '~'
" vim-textobj-user - library for creating text objects
Pack 'kana/vim-textobj-user'
" vim-textobj-entire - Entire file text object
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'
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'
" 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'
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\ }
Pack 'kbenzie/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'
let g:matchup_matchparen_offscreen = {'method': 'status_manual'}
" vim-table-mode - Easy table manipulation
Pack 'dhruvasagar/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'}
let g:DoxygenToolkit_commentType = 'C++'
" markdown fenced code block languages
" Markdown fenced code block languages
let g:markdown_fenced_languages =
\ ['cpp', 'c', 'cmake', 'console', 'sh', 'vim', 'python', 'yaml']
@@ -161,25 +36,81 @@ let g:rst_syntax_code_list = {
\ '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'
if wsl#isDetected()
" Make gx work in WSL
let g:netrw_browsex_viewer='cmd.exe /C start'
endif
" Syntax plugins
Pack 'kbenzie/vim-spirv'
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',
\ 'coc-css',
\ 'coc-docker',
\ 'coc-html',
\ 'coc-jedi',
\ 'coc-json',
\ 'coc-marketplace',
\ 'coc-pyright',
\ 'coc-snippets',
\ 'coc-vimlsp',
\ 'coc-yaml',
\]
if has("win32")
let g:coc_global_extensions += [
\ 'coc-powershell'
\]
endif
let g:coc_default_semantic_highlight_groups = 0
" vim-signify
let g:signify_sign_change = '~'
" vim-textobj-entire
let g:textobj_entire_no_default_key_mappings = 1
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-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)
" fzf.vim
let g:fzf_action = {
\ 'ctrl-t': 'tab split',
\ 'ctrl-s': 'split',
\ 'ctrl-v': 'vsplit'
\ }
" note.vim
let g:note_directory = '~/Sync/Notes'
" vim-matchit
let g:matchup_matchparen_offscreen = {'method': 'status_manual'}
" vim-table-mode
let g:table_mode_map_prefix = '<leader>t'
let g:table_mode_toggle_map = 'M'
" DoxygenToolkit.vim
let g:DoxygenToolkit_commentType = 'C++'
" vim-spirv
let g:spirv_enable_current_id = 0
let g:spirv_enable_extinst_error = 0
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'