little tweaks, neovim lsp
This commit is contained in:
parent
a7e35b5db6
commit
6225a0b19b
8 changed files with 49 additions and 119 deletions
|
|
@ -2,16 +2,22 @@
|
|||
|
||||
{
|
||||
imports = [ ./khard-dump.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
nodePackages.typescript-language-server
|
||||
astro-language-server
|
||||
marksman
|
||||
nil
|
||||
typescript-language-server
|
||||
];
|
||||
|
||||
programs.neovim = {
|
||||
extraConfig = builtins.readFile ./config.vim;
|
||||
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
plugins = with pkgs.vimPlugins;
|
||||
|
||||
extraConfig = builtins.readFile ./config.vim;
|
||||
|
||||
plugins = with pkgs.vimPlugins;
|
||||
let
|
||||
woof = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "woof.vim";
|
||||
|
|
@ -24,25 +30,22 @@
|
|||
in
|
||||
|
||||
[
|
||||
{
|
||||
plugin = woof;
|
||||
config = ''
|
||||
let maplocalleader="\\"
|
||||
let mapleader=" "
|
||||
'';
|
||||
}
|
||||
woof
|
||||
|
||||
# cmp-nvim-lsp
|
||||
# cmp-buffer
|
||||
# cmp-emoji
|
||||
# cmp-path
|
||||
# cmp-cmdline
|
||||
# cmp-nvim-ultisnips
|
||||
# nvim-cmp
|
||||
|
||||
cmp-nvim-lsp
|
||||
cmp-buffer
|
||||
cmp-emoji
|
||||
cmp-path
|
||||
cmp-cmdline
|
||||
cmp-nvim-ultisnips
|
||||
nvim-cmp
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
config = builtins.readFile ./lsp.vim;
|
||||
type = "lua";
|
||||
config = builtins.readFile ./lsp.lua;
|
||||
}
|
||||
|
||||
{
|
||||
plugin = fzf-vim;
|
||||
config = ''
|
||||
|
|
|
|||
6
home/nvim/lsp.lua
Normal file
6
home/nvim/lsp.lua
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
vim.lsp.enable('astro')
|
||||
vim.lsp.enable('marksman')
|
||||
vim.lsp.enable('nil_ls')
|
||||
vim.lsp.enable('r_language_server')
|
||||
vim.lsp.enable('texlab')
|
||||
vim.lsp.enable('ts_ls')
|
||||
|
|
@ -1,84 +0,0 @@
|
|||
lua <<EOF
|
||||
|
||||
local cmp = require('cmp')
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
vim.fn["UltiSnips#Anon"](args.body)
|
||||
end,
|
||||
},
|
||||
performance = {
|
||||
debounce = 500,
|
||||
throttle = 500,
|
||||
},
|
||||
window = {
|
||||
documentation = cmp.config.window.bordered(),
|
||||
completion = cmp.config.window.bordered(),
|
||||
},
|
||||
mapping = {
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(),
|
||||
['<C-g>'] = cmp.mapping.abort(),
|
||||
-- ['<Tab>'] = cmp.mapping.confirm({ select = true }),
|
||||
['<Cr>'] = cmp.mapping.confirm({ select = false }),
|
||||
['<C-d>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'emoji' },
|
||||
}, {
|
||||
{ name = 'buffer', option = { keyword_pattern = [[\k\+]]}},
|
||||
})
|
||||
})
|
||||
|
||||
cmp.setup.filetype('gitcommit', {
|
||||
sources = cmp.config.sources({
|
||||
{ name = 'cmp_git' },
|
||||
}, {
|
||||
{ name = 'buffer' },
|
||||
})
|
||||
})
|
||||
|
||||
cmp.setup.cmdline({ '/', '?' }, {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = {
|
||||
{ name = 'buffer' }
|
||||
}
|
||||
})
|
||||
|
||||
cmp.setup.cmdline(':', {
|
||||
mapping = cmp.mapping.preset.cmdline(),
|
||||
sources = cmp.config.sources( {
|
||||
{ name = 'cmdline' }
|
||||
})
|
||||
})
|
||||
|
||||
local on_attach = function(_, _)
|
||||
vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, {})
|
||||
vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, {})
|
||||
vim.keymap.set('n', '<leader>f', vim.lsp.buf.format, {})
|
||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {})
|
||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, {})
|
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, {})
|
||||
vim.keymap.set('n', 'K', vim.lsp.buf.hover, {})
|
||||
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float, {})
|
||||
end
|
||||
|
||||
-- this interferes with cool vim surround stuff
|
||||
vim.keymap.del('i', '<C-s>', {})
|
||||
|
||||
local nvim_lsp = require('lspconfig')
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
local servers = { "r_language_server", "ts_ls", "astro", "texlab", "marksman" }
|
||||
for _, lsp in ipairs(servers) do
|
||||
nvim_lsp[lsp].setup {
|
||||
on_attach = on_attach,
|
||||
flags = {
|
||||
debounce_text_changes = 1000,
|
||||
},
|
||||
capabilities = capabilities
|
||||
}
|
||||
end
|
||||
EOF
|
||||
Loading…
Add table
Add a link
Reference in a new issue