feat: vim lsp features

This commit is contained in:
Deepak Mallubhotla 2024-04-24 00:39:05 +00:00
parent d97581efc9
commit c170b79556
Signed by: deepak
GPG Key ID: 8F904A3FC7021497
3 changed files with 59 additions and 1 deletions

View File

@ -57,25 +57,71 @@
];
};
programs.neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
plugins = with pkgs.vimPlugins; [ vimtex
plugins = with pkgs.vimPlugins; [
vimtex
vim-nix
# plenary and stuff for telescope
plenary-nvim telescope-nvim telescope-file-browser-nvim
ctrlp-vim
# lsp stuff
lsp-zero-nvim
nvim-cmp
cmp-nvim-lsp
cmp_luasnip
nvim-lspconfig
wiki-vim
vim-markdown
cmp-buffer
vim-airline
vim-fugitive
friendly-snippets
luasnip
];
extraConfig = ''
inoremap jj <Esc>
inoremap kk <Esc>
lua << EOF
local lsp_zero = require('lsp-zero')
lsp_zero.on_attach(function(client, bufnr)
lsp_zero.default_keymaps({buffer = bufnr})
end)
local cmp = require('cmp')
local cmp_format = lsp_zero.cmp_format({details = true})
local cmp_action = lsp_zero.cmp_action()
require("luasnip.loaders.from_vscode").lazy_load()
cmp.setup({
sources = {
{name = 'nvim_lsp'},
{name = 'buffer'},
{name = 'luasnip'},
},
formatting = cmp_format,
mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp_action.tab_complete(),
['<S-Tab>'] = cmp_action.select_prev_or_fallback(),
['<C-f>'] = cmp_action.luasnip_jump_forward(),
['<C-b>'] = cmp_action.luasnip_jump_backward(),
}),
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
snippet = {
expand = function(args)
require('luasnip').lsp_expand(args.body)
end,
}
})
require'lspconfig'.nil_ls.setup{}
vim.g.vim_markdown_folding_level = 2

View File

@ -64,6 +64,7 @@ in
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
powerline-fonts
custom-fonts.custom-fonts
];

View File

@ -1,5 +1,8 @@
{ pkgs, modulesPath, ... }:
let
custom-fonts = import ../../fonts { inherit pkgs; };
in
{
imports = [
"${modulesPath}/profiles/minimal.nix"
@ -54,6 +57,14 @@
gnupg
];
fonts.packages = with pkgs; [
fira-code
fira-code-symbols
powerline-fonts
custom-fonts.custom-fonts
];
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "curses";