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' }, } } use { 'simrat39/rust-tools.nvim', requires = { { 'neovim/nvim-lspconfig' }, -- Debugging { 'nvim-lua/plenary.nvim' }, { 'mfussenegger/nvim-dap' }, }, } use { 'nvim-treesitter/nvim-treesitter', run = function() require('nvim-treesitter.install').update({ with_sync = true }) end, } use { 'kien/ctrlp.vim' } use { 'tpope/vim-commentary' } use { 'tpope/vim-surround' } -- repeat plugin commands using `.` use { 'tpope/vim-repeat' } -- autodetect indentation use { 'tpope/vim-sleuth' } -- git use { 'tpope/vim-fugitive' } use { 'airblade/vim-gitgutter' } use { 'farmergreg/vim-lastplace' } use { 'bronson/vim-trailing-whitespace' } 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, }, })