150 lines
3.6 KiB
Lua
150 lines
3.6 KiB
Lua
require('packer').startup(function(use)
|
|
use {
|
|
'VonHeikemen/lsp-zero.nvim',
|
|
requires = {
|
|
-- LSP Support
|
|
{ 'neovim/nvim-lspconfig' },
|
|
{ 'williamboman/mason.nvim' },
|
|
{ 'williamboman/mason-lspconfig.nvim' },
|
|
|
|
-- Autocompletion
|
|
{ 'hrsh7th/nvim-cmp' },
|
|
{ 'hrsh7th/cmp-buffer' },
|
|
{ 'hrsh7th/cmp-path' },
|
|
{ 'saadparwaiz1/cmp_luasnip' },
|
|
{ 'hrsh7th/cmp-nvim-lsp' },
|
|
{ 'hrsh7th/cmp-nvim-lua' },
|
|
|
|
-- Snippets
|
|
{ 'L3MON4D3/LuaSnip' },
|
|
{ 'rafamadriz/friendly-snippets' },
|
|
},
|
|
config = function()
|
|
local lsp = require('lsp-zero')
|
|
lsp.preset('recommended')
|
|
lsp.setup()
|
|
end
|
|
}
|
|
|
|
use {
|
|
"mrcjkb/rustaceanvim",
|
|
ft = { 'rust' },
|
|
requires = {
|
|
{
|
|
"lvimuser/lsp-inlayhints.nvim",
|
|
opts = {}
|
|
},
|
|
{ "nvim-lua/plenary.nvim" },
|
|
{ "mfussenegger/nvim-dap" },
|
|
},
|
|
config = function()
|
|
vim.g.rustaceanvim = {
|
|
tools = {
|
|
hover_actions = {
|
|
auto_focus = true,
|
|
},
|
|
},
|
|
server = {
|
|
on_attach = function(client, bufnr)
|
|
require("lsp-inlayhints").setup()
|
|
require("lsp-inlayhints").on_attach(client, bufnr)
|
|
require("lsp-inlayhints").show()
|
|
end
|
|
}
|
|
}
|
|
end,
|
|
}
|
|
|
|
use {
|
|
'nvim-treesitter/nvim-treesitter',
|
|
run = function() require('nvim-treesitter.install').update({ with_sync = true }) end,
|
|
config = function()
|
|
require('nvim-treesitter.configs').setup {
|
|
ensure_installed = { "rust", "nix" },
|
|
highlight={enable=true},
|
|
}
|
|
end
|
|
}
|
|
|
|
-- use { 'kien/ctrlp.vim' }
|
|
use {
|
|
'nvim-telescope/telescope.nvim',
|
|
requires = {
|
|
{ 'nvim-lua/plenary.nvim' }
|
|
},
|
|
config = function()
|
|
local builtin = require('telescope.builtin')
|
|
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
|
vim.keymap.set('n', '<c-p>', builtin.find_files, {})
|
|
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
|
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
|
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
|
|
end,
|
|
}
|
|
|
|
use { 'tpope/vim-commentary' }
|
|
use { 'tpope/vim-surround' }
|
|
-- repeat plugin commands using `.`
|
|
use { 'tpope/vim-repeat' }
|
|
-- autodetect indentation
|
|
use { 'tpope/vim-sleuth' }
|
|
-- autoclose quotes, brackets, ...
|
|
use { 'Raimondi/delimitMate' }
|
|
-- TODO: evaluate if usefull
|
|
-- use {
|
|
-- "windwp/nvim-autopairs",
|
|
-- config = function()
|
|
-- require("nvim-autopairs").setup({
|
|
-- -- check_ts = true,
|
|
-- })
|
|
-- end,
|
|
-- }
|
|
|
|
-- git
|
|
use { 'tpope/vim-fugitive' }
|
|
use {
|
|
'lewis6991/gitsigns.nvim',
|
|
config = function()
|
|
require('gitsigns').setup({
|
|
current_line_blame = true,
|
|
})
|
|
end
|
|
}
|
|
|
|
use { 'farmergreg/vim-lastplace' }
|
|
|
|
use { 'bronson/vim-trailing-whitespace' }
|
|
|
|
-- ui stuff
|
|
use {
|
|
'akinsho/bufferline.nvim',
|
|
tag = "v3.*",
|
|
requires = 'nvim-tree/nvim-web-devicons',
|
|
config = function()
|
|
require("bufferline").setup {}
|
|
end,
|
|
}
|
|
end)
|
|
|
|
-- local lsp = require('lsp-zero')
|
|
-- lsp.preset('recommended')
|
|
-- lsp.setup()
|
|
|
|
-- require('nvim-treesitter.configs').setup {
|
|
-- ensure_installed = { "rust", "nix" },
|
|
-- highlight={enable=true},
|
|
-- }
|
|
|
|
-- local rt = require("rust-tools")
|
|
|
|
-- rt.setup({
|
|
-- server = {
|
|
-- on_attach = function(_, bufnr)
|
|
-- -- Hover actions
|
|
-- vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
|
|
-- -- Code action groups
|
|
-- vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
|
|
-- end,
|
|
-- },
|
|
-- })
|