Add a few plugins to neovim

This commit is contained in:
Tyler Kelley 2024-05-15 11:30:36 -05:00
parent 242c463544
commit 87b938304b
3 changed files with 81 additions and 2 deletions

View File

@ -0,0 +1,46 @@
local cmp = require('cmp')
local luasnip = require('luasnip')
require('luasnip.loaders.from_vscode').lazy_load()
luasnip.config.setup {}
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body)
end,
},
mapping = cmp.mapping.preset.insert {
['<C-n>'] = cmp.mapping.select_next_item(),
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,
},
['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, { 'i', 's' }),
['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { 'i', 's' }),
},
sources = {
{ name = 'nvim_lsp' },
{ name = 'luasnip' },
},
}

View File

@ -0,0 +1,13 @@
require('telescope').setup({
extensions = {
fzf = {
fuzzy = true, -- false will only do exact matching
override_generic_sorter = true, -- override the generic sorter
override_file_sorter = true, -- override the file sorter
case_mode = "smart_case", -- or "ignore_case" or "respect_case"
-- the default case_mode is "smart_case"
}
}
})
require('telescope').load_extension('fzf')

View File

@ -168,24 +168,44 @@ in
programs = {
gh.enable = true;
neovim = {
neovim =
let
toLua = str: "lua << EOF\n${str}\nEOF\n";
toLuaFile = file: "lua << EOF\n${builtins.readFile file}\nEOF\n";
in
{
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
extraPackages = with pkgs; [
lua-language-server
];
plugins = with pkgs.vimPlugins; [
nvim-treesitter.withAllGrammars
{
plugin = comment-nvim;
config = "require(\"Comment\").setup()";
}
{
plugin = dracula-nvim;
config = "colorscheme dracula";
}
plenary-nvim
neodev-nvim
{
plugin = nvim-cmp;
config = toLuaFile ../../config/nvim/plugins/cmp.lua;
}
{
plugin = telescope-nvim;
config = toLuaFile ../../config/nvim/plugins/telescope.lua;
}
vim-tmux-navigator
];
extraLuaConfig = ''
local opt = vim.opt
opt.guifont = "JetBrainsMono\\ NFM,Noto_Color_Emoji:h14"
opt.number = true
opt.relativenumber = true
opt.tabstop = 2