diff options
-rw-r--r-- | user/nvim/coc-settings.json | 5 | ||||
-rw-r--r-- | user/nvim/init.vim | 25 | ||||
-rw-r--r-- | user/settings/base.nix | 25 |
3 files changed, 44 insertions, 11 deletions
diff --git a/user/nvim/coc-settings.json b/user/nvim/coc-settings.json new file mode 100644 index 00000000..718446b1 --- /dev/null +++ b/user/nvim/coc-settings.json @@ -0,0 +1,5 @@ +{ + "json.enable": true, + "suggest.enablePreview": true +} + diff --git a/user/nvim/init.vim b/user/nvim/init.vim new file mode 100644 index 00000000..0b2438d5 --- /dev/null +++ b/user/nvim/init.vim @@ -0,0 +1,25 @@ +set autoindent + +set background=light +set shiftwidth=2 +set tabstop=2 +set noexpandtab +set relativenumber +set smartcase + +" use <tab> for trigger completion and navigate to the next complete item +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' +endfunction + +inoremap <silent><expr> <Tab> + \ pumvisible() ? "\<C-n>" : + \ <SID>check_back_space() ? "\<Tab>" : + \ coc#refresh() + +inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" +inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" + +" use <c-space> to trigger completion +inoremap <silent><expr> <c-space> coc#refresh() diff --git a/user/settings/base.nix b/user/settings/base.nix index b5031dc7..823aa5f3 100644 --- a/user/settings/base.nix +++ b/user/settings/base.nix @@ -9,20 +9,22 @@ programs.neovim = { enable = true; vimAlias = true; + vimdiffAlias = true; + package = pkgs.unstable.neovim-unwrapped; configure = { - customRC = '' - set autoindent - - set background=light - set shiftwidth=2 - set tabstop=2 - set noexpandtab - set relativenumber - set smartcase - ''; - packages.myVimPackage = with pkgs.vimPlugins; { + customRC = builtins.readFile ../nvim/init.vim; + packages.myVimPackage = with pkgs.unstable.vimPlugins; { start = [ commentary + coc-css + coc-eslint + coc-git + coc-html + coc-json + coc-nvim + coc-prettier + coc-tabnine + coc-yaml vim-surround vim-nix ]; @@ -30,6 +32,7 @@ }; }; }; + xdg.configFile."nvim/coc-settings.json".source = ../nvim/coc-settings.json; home.sessionVariables = { EMAIL = "alan@alanpearce.eu"; XDG_CACHE_HOME = if pkgs.stdenv.isDarwin then "$HOME/Library/Caches/XDG" else "$HOME/.cache"; |