feat(nvim): add a bunch of plugins
This commit is contained in:
parent
41decfabb4
commit
2c42189b1c
3 changed files with 161 additions and 11 deletions
|
@ -1,2 +1,52 @@
|
||||||
vim.opt.fillchars = {eob = " "}
|
vim.opt.fillchars = {eob = " "}
|
||||||
vim.cmd[[colorscheme dracula]]
|
vim.cmd[[colorscheme dracula]]
|
||||||
|
|
||||||
|
-- Set up nvim-cmp.
|
||||||
|
local cmp = require'cmp'
|
||||||
|
local cmp_autopairs = require('nvim-autopairs.completion.cmp')
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
-- REQUIRED - you must specify a snippet engine
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
-- completion = cmp.config.window.bordered(),
|
||||||
|
-- documentation = cmp.config.window.bordered(),
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||||
|
}),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'vsnip' }, -- For vsnip users.
|
||||||
|
-- { name = 'luasnip' }, -- For luasnip users.
|
||||||
|
-- { name = 'ultisnips' }, -- For ultisnips users.
|
||||||
|
-- { name = 'snippy' }, -- For snippy users.
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
cmp.event:on(
|
||||||
|
'confirm_done',
|
||||||
|
cmp_autopairs.on_confirm_done()
|
||||||
|
)
|
||||||
|
|
||||||
|
-- https://github.com/AstroNvim/AstroNvim/issues/648#issuecomment-1511728897
|
||||||
|
vim.api.nvim_create_augroup("neotree_autoopen", { clear = true })
|
||||||
|
vim.api.nvim_create_autocmd("BufReadPre", {
|
||||||
|
desc = "Open neo-tree on enter",
|
||||||
|
group = "neotree_autoopen",
|
||||||
|
callback = function()
|
||||||
|
if not vim.g.neotree_opened then
|
||||||
|
vim.cmd "Neotree show"
|
||||||
|
vim.g.neotree_opened = true
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
|
@ -1,3 +1,81 @@
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
local lspconfig = require('lspconfig')
|
local lspconfig = require('lspconfig')
|
||||||
lspconfig.bashls.setup {}
|
lspconfig.bashls.setup { capabilities = capabilities }
|
||||||
lspconfig.nixd.setup {}
|
lspconfig.nixd.setup { capabilities = capabilities }
|
||||||
|
lspconfig.html.setup { capabilities = capabilities }
|
||||||
|
lspconfig.cssls.setup { capabilities = capabilities }
|
||||||
|
lspconfig.lua_ls.setup {
|
||||||
|
settings = {
|
||||||
|
capabilities = capabilities,
|
||||||
|
Lua = {
|
||||||
|
runtime = {
|
||||||
|
version = 'LuaJIT',
|
||||||
|
},
|
||||||
|
diagnostics = {
|
||||||
|
-- Get the language server to recognize the `vim` global
|
||||||
|
globals = {'vim'},
|
||||||
|
},
|
||||||
|
workspace = {
|
||||||
|
-- Make the server aware of Neovim runtime files
|
||||||
|
library = vim.api.nvim_get_runtime_file("", true),
|
||||||
|
},
|
||||||
|
telemetry = {
|
||||||
|
enable = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require("formatter").setup {
|
||||||
|
filetype = {
|
||||||
|
["*"] = {
|
||||||
|
-- "formatter.filetypes.any" defines default configurations for any
|
||||||
|
-- filetype
|
||||||
|
require("formatter.filetypes.any").remove_trailing_whitespace
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||||
|
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||||
|
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||||
|
-- Instead of true it can also be a list of languages
|
||||||
|
additional_vim_regex_highlighting = false,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
require('gitsigns').setup()
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
theme = 'dracula',
|
||||||
|
globalstatus = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
require("neo-tree").setup({
|
||||||
|
close_if_last_window = true,
|
||||||
|
window = {
|
||||||
|
width = 30,
|
||||||
|
},
|
||||||
|
filesystem = {
|
||||||
|
filtered_items = {
|
||||||
|
visible = false, -- when true, they will just be displayed differently than normal items
|
||||||
|
hide_dotfiles = false,
|
||||||
|
hide_gitignored = true,
|
||||||
|
hide_by_name = {},
|
||||||
|
hide_by_pattern = {},
|
||||||
|
always_show = {},
|
||||||
|
never_show = {},
|
||||||
|
never_show_by_pattern = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
follow_current_file = {
|
||||||
|
enabled = true,
|
||||||
|
leave_dirs_open = true,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
require('nvim-autopairs').setup()
|
||||||
|
require('todo-comments').setup()
|
||||||
|
require("scrollbar").setup()
|
||||||
|
|
|
@ -33,30 +33,52 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
# used to compile tree-sitter grammar
|
|
||||||
tree-sitter
|
tree-sitter
|
||||||
|
|
||||||
# https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
# https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
shellcheck
|
shellcheck
|
||||||
nixd
|
nixd
|
||||||
|
sumneko-lua-language-server
|
||||||
|
vscode-langservers-extracted
|
||||||
];
|
];
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
# you can use plugins from the pkgs
|
|
||||||
vim-which-key
|
vim-which-key
|
||||||
clangd_extensions-nvim
|
|
||||||
|
|
||||||
nvim-treesitter.withAllGrammars
|
nvim-treesitter.withAllGrammars
|
||||||
nvim-treesitter
|
nvim-treesitter
|
||||||
|
|
||||||
# or you can use our function to directly fetch plugins from git
|
#telescope-nvim
|
||||||
(plugin "hrsh7th/nvim-cmp") # completion
|
#telescope-fzf-native-nvim
|
||||||
(plugin "neovim/nvim-lspconfig")
|
|
||||||
(plugin "Mofiqul/dracula.nvim")
|
|
||||||
(plugin "nvim-neo-tree/neo-tree.nvim")
|
|
||||||
|
|
||||||
# this installs the plugin from 'lua' branch
|
(plugin "Mofiqul/dracula.nvim")
|
||||||
|
(plugin "neovim/nvim-lspconfig")
|
||||||
(plugin "lukas-reineke/indent-blankline.nvim")
|
(plugin "lukas-reineke/indent-blankline.nvim")
|
||||||
|
(plugin "lewis6991/gitsigns.nvim")
|
||||||
|
(plugin "nvim-lualine/lualine.nvim")
|
||||||
|
|
||||||
|
# plugins for completion
|
||||||
|
(plugin "hrsh7th/nvim-cmp")
|
||||||
|
(plugin "hrsh7th/cmp-nvim-lsp")
|
||||||
|
(plugin "hrsh7th/cmp-buffer")
|
||||||
|
(plugin "hrsh7th/cmp-path")
|
||||||
|
(plugin "hrsh7th/cmp-cmdline")
|
||||||
|
(plugin "hrsh7th/cmp-vsnip")
|
||||||
|
(plugin "hrsh7th/vim-vsnip")
|
||||||
|
|
||||||
|
# neo-tree and deps
|
||||||
|
(plugin "nvim-neo-tree/neo-tree.nvim")
|
||||||
|
(plugin "nvim-lua/plenary.nvim")
|
||||||
|
(plugin "nvim-tree/nvim-web-devicons")
|
||||||
|
(plugin "MunifTanjim/nui.nvim")
|
||||||
|
|
||||||
|
# to explore more
|
||||||
|
(plugin "iamcco/markdown-preview.nvim")
|
||||||
|
(plugin "sindrets/diffview.nvim")
|
||||||
|
(plugin "windwp/nvim-autopairs")
|
||||||
|
(plugin "mhartington/formatter.nvim")
|
||||||
|
(plugin "folke/todo-comments.nvim")
|
||||||
|
(plugin "petertriho/nvim-scrollbar")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue