61 lines
1.9 KiB
Nix
61 lines
1.9 KiB
Nix
{ pkgs, config, ... }@inputs:
|
|
{
|
|
programs.neovim = {
|
|
|
|
enable = true;
|
|
vimdiffAlias = true;
|
|
withNodeJs = true;
|
|
|
|
plugins = with pkgs.vimPlugins; [
|
|
{
|
|
plugin = coc-nvim;
|
|
config = ''
|
|
nmap <silent> <F2> <Plug>(coc-rename)
|
|
|
|
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
|
|
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"
|
|
|
|
" Remap <C-f> and <C-b> for scroll float windows/popups.
|
|
if has('nvim-0.4.0') || has('patch-8.2.0750')
|
|
nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>"
|
|
inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>"
|
|
vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>"
|
|
vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>"
|
|
endif
|
|
'';
|
|
}
|
|
fzf-vim
|
|
{
|
|
plugin = iceberg-vim;
|
|
config = "colorscheme iceberg";
|
|
}
|
|
vim-sleuth
|
|
coc-json
|
|
coc-html
|
|
coc-tsserver
|
|
neoformat
|
|
undotree
|
|
{
|
|
plugin = vim-jsdoc;
|
|
config = ''
|
|
let g:jsdoc_formatter = "tsdoc"
|
|
let g:typescript_indent_disable = 1
|
|
'';
|
|
}
|
|
];
|
|
extraConfig = ''
|
|
set background=dark
|
|
set termguicolors
|
|
|
|
set ic
|
|
set number
|
|
set autoindent
|
|
|
|
set completeopt=menuone,noinsert,noselect
|
|
set shortmess+=c
|
|
'';
|
|
};
|
|
home.file."coc-settings" = (import ./coc { inherit pkgs config; });
|
|
}
|