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', 'ff', builtin.find_files, {}) vim.keymap.set('n', '', builtin.find_files, {}) vim.keymap.set('n', 'fg', builtin.live_grep, {}) vim.keymap.set('n', 'fb', builtin.buffers, {}) vim.keymap.set('n', '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", "", rt.hover_actions.hover_actions, { buffer = bufnr }) -- -- Code action groups -- vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) -- end, -- }, -- })