Even more neovim changes
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
index 80c2c6a..c8f9ab2 100644
--- a/modules/neovim/coc/default.nix
+++ b/modules/neovim/coc/default.nix
@@ -32,6 +32,7 @@
"cSpell.checkOnlyEnabledfileTypes" = false;
"diagnostic.virtualText" = true;
"diagnostic.virtualTextCurrentLineOnly" = false;
+ "suggest.virtualText" = true;
"cSpell.dictionaryDefinitions" = [
{
name = "imperative";
@@ -60,6 +61,7 @@
markdown = ["tex"];
};
"snippets.autoTrigger" = false;
+ "codeLens.enable" = true;
};
};
plugins = with pkgs.vimPlugins; [
@@ -74,6 +76,7 @@
coc-markdownlint
coc-texlab
coc-pyright
+ coc-java
# Spellchecker
nixpkgs-minion.legacyPackages.${system}.vimPlugins.coc-spell-checker
@@ -98,6 +101,8 @@
rust-analyzer
texlab
omnisharp-roslyn
+ jdt-language-server
+ jdk
nodePackages.pyright
(python3.withPackages (pyPkgs:
with pyPkgs; [
diff --git a/modules/neovim/coc/keybinds.vim b/modules/neovim/coc/keybinds.vim
index bbc1694..a0a4371 100644
--- a/modules/neovim/coc/keybinds.vim
+++ b/modules/neovim/coc/keybinds.vim
@@ -11,13 +11,20 @@
let g:UltiSnipsExpandTrigger="<NUL>"
let g:UltiSnipsJumpForwardTrigger="<NUL>"
let g:UltiSnipsJumpBackwardTrigger="<NUL>"
+
inoremap <silent><expr> <CR> coc#pum#visible() ? "\<C-g>u" . coc#pum#confirm() :
- \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ coc#jumpable() ? "\<Esc>:call coc#snippet#next()\<CR>" :
+ \ tablemode#table#IsTable('.') && !(tablemode#spreadsheet#GetLastRow(".") == line('.')) && !(tablemode#spreadsheet#GetLastRow(".") == 0) ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('j')\<CR>:call tablemode#spreadsheet#MoveToStartOfCell()\<CR>" . mode() :
+ \ tablemode#table#IsTable('.') ? "<Esc>$a<CR>" :
\ "\<Plug>(PearTreeExpand)"
+
+inoremap <silent><expr> <S-CR> tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('k')\<CR>:call tablemode#spreadsheet#MoveToStartOfCell()\<CR>" . mode() : "\<S-CR>"
+
inoremap <silent><expr> <Tab> coc#pum#visible() ? coc#pum#next(0) :
\ coc#expandableOrJumpable() ? "\<C-g>u\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
- \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : (CheckBackSpace() ? "\<TAB>" :
- \ coc#refresh()))
+ \ pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() :
+ \ tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('l')\<CR>" . mode() :
+ \ CheckBackSpace() ? "\<TAB>" : coc#refresh()
function! CheckBackSpace() abort
let col = col('.') - 1
@@ -25,34 +32,48 @@
endfunction
inoremap <silent><expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(0) :
- \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+ \ coc#jumpable() ? "\<Esc>:call coc#snippet#prev()\<CR>" :
+ \ tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('h')\<CR>" . mode() :
\ "\<S-Tab>"
xnoremap <silent> <Tab> <Plug>(coc-snippets-select)
nnoremap <silent><expr> <CR> coc#jumpable() ?
\ ":call coc#snippet#next()\<CR>" :
+ \ tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('j')\<CR>:call tablemode#spreadsheet#MoveToStartOfCell()\<CR>" :
\ "\<CR>"
+nnoremap <silent><expr> <S-CR> tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('k')\<CR>:call tablemode#spreadsheet#MoveToStartOfCell()\<CR>" : "\<S-CR>"
+
nnoremap <silent><expr> <Tab> coc#jumpable() ?
\ ":call coc#snippet#next()\<CR>" :
- \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
+ \ pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() :
+ \ tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('l')\<CR>" :
+ \ "\<Tab>"
nnoremap <silent><expr> <S-Tab> coc#jumpable() ?
\ ":call coc#snippet#prev()\<CR>" :
+ \ tablemode#table#IsTable('.') ? "\<Esc>:call tablemode#spreadsheet#cell#Motion('h')\<CR>" :
\ "\<S-Tab>"
snoremap <silent><expr> <CR> coc#jumpable() ?
- \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ "\<Esc>:call coc#snippet#next()\<CR>" :
\ "\<CR>"
snoremap <silent><expr> <Tab> coc#jumpable() ?
- \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+ \ "\<Esc>:call coc#snippet#next()\<CR>" :
\ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
snoremap <silent><expr> <S-Tab> coc#jumpable() ?
- \ "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+ \ "\<Esc>:call coc#snippet#prev()\<CR>" :
\ "\<S-Tab>"
+noremap <C-CR> <CR>
+
+nnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
+nnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
+inoremap <nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<C-f>"
+inoremap <nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<C-b>"
+
function! s:show_documentation()
if (index(['vim','help'], &filetype) >= 0)
execute 'h '.expand('<cword>')
diff --git a/modules/neovim/coc/snippets/markdown.snippets b/modules/neovim/coc/snippets/markdown.snippets
index b6e7af8..d637b88 100644
--- a/modules/neovim/coc/snippets/markdown.snippets
+++ b/modules/neovim/coc/snippets/markdown.snippets
@@ -73,6 +73,10 @@
<!-- spell-checker:enable -->
endsnippet
+snippet spellwords "Add extra words for spellchecking"
+<!-- spell-checker:words ${1} -->${0}
+endsnippet
+
snippet normaldistribution "A normal distribution" i
X\sim N(${1:mean}, ${2:variance})${0}
endsnippet
@@ -84,3 +88,15 @@
snippet sum "A sum" i
\sum^{${1:n}}_{${2:r}=${3:1}}${4}${0}
endsnippet
+
+snippet qed "quod erat demonstrandum - the thing we wanted to prove has been" w
+Q.E.D.
+endsnippet
+
+snippet forallinzplus "For all in the positive integers" i
+\forall ${1:n} \in \\${2:Z}^${3:+}${0}
+endsnippet
+
+snippet piby "By by something" i
+\frac{${1}\pi}{${2}}${0}
+endsnippet
diff --git a/modules/neovim/coc/theme.vim b/modules/neovim/coc/theme.vim
index a5f52f5..d7558f1 100644
--- a/modules/neovim/coc/theme.vim
+++ b/modules/neovim/coc/theme.vim
@@ -16,3 +16,7 @@
call g:Highlight("DiagnosticVirtualTextHint", g:darkblue, g:transparent)
call g:Highlight("DiagnosticVirtualTextWarn", g:darkyellow, g:transparent)
call g:Highlight("DiagnosticVirtualTextError", g:darkred, g:transparent)
+
+call g:Highlight("CocCodeLens", g:lightgrey, g:transparent)
+call g:Highlight("CocPumVirtualText", g:lightgrey, g:transparent)
+call g:Highlight("CocInlayHint", g:darkpurple, g:transparent)