added better rust-analyzer support.
This commit is contained in:
		
							parent
							
								
									e90208c701
								
							
						
					
					
						commit
						ed2b8c723d
					
				
					 3 changed files with 96 additions and 12 deletions
				
			
		| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
local luasnip = require 'luasnip'
 | 
					local luasnip = require 'luasnip'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Set completeopt to have a better completion experience
 | 
					-- Set completeopt to have a better completion experience
 | 
				
			||||||
vim.o.completeopt='menu,menuone,preview,noinsert'
 | 
					vim.o.completeopt='menu,menuone,preview,noinsert,noselect'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- nvim-cmp setup
 | 
					-- nvim-cmp setup
 | 
				
			||||||
local cmp = require 'cmp'
 | 
					local cmp = require 'cmp'
 | 
				
			||||||
| 
						 | 
					@ -21,8 +21,10 @@ cmp.setup {
 | 
				
			||||||
		['<C-Space>'] = cmp.mapping.complete(),
 | 
							['<C-Space>'] = cmp.mapping.complete(),
 | 
				
			||||||
		['<C-e>'] = cmp.mapping.close(),
 | 
							['<C-e>'] = cmp.mapping.close(),
 | 
				
			||||||
		['<CR>'] = cmp.mapping.confirm {
 | 
							['<CR>'] = cmp.mapping.confirm {
 | 
				
			||||||
			behavior = cmp.ConfirmBehavior.Replace,
 | 
								behavior = cmp.ConfirmBehavior.Insert,
 | 
				
			||||||
			select = false,
 | 
								select = true,
 | 
				
			||||||
 | 
								-- behavior = cmp.ConfirmBehavior.Replace,
 | 
				
			||||||
 | 
								-- select = false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		['<Tab>'] = function(fallback)
 | 
							['<Tab>'] = function(fallback)
 | 
				
			||||||
			if cmp.visible() then
 | 
								if cmp.visible() then
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@ return require('packer').startup(function(use)
 | 
				
			||||||
						'pyright',
 | 
											'pyright',
 | 
				
			||||||
						'bashls',
 | 
											'bashls',
 | 
				
			||||||
						'rust_analyzer',
 | 
											'rust_analyzer',
 | 
				
			||||||
						'sumenko_lua',
 | 
											'sumneko_lua',
 | 
				
			||||||
						'texlab',
 | 
											'texlab',
 | 
				
			||||||
					},
 | 
										},
 | 
				
			||||||
					automatic_installation = false,
 | 
										automatic_installation = false,
 | 
				
			||||||
| 
						 | 
					@ -272,13 +272,6 @@ return require('packer').startup(function(use)
 | 
				
			||||||
		config = function() require'competitest'.setup() end
 | 
							config = function() require'competitest'.setup() end
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	use {'folke/todo-comments.nvim',
 | 
					 | 
				
			||||||
		requires = 'nvim-lua/plenary.nvim',
 | 
					 | 
				
			||||||
		config = function()
 | 
					 | 
				
			||||||
			require('todo-comments').setup()
 | 
					 | 
				
			||||||
		end
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	use {'sudormrfbin/cheatsheet.nvim',
 | 
						use {'sudormrfbin/cheatsheet.nvim',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		requires = {
 | 
							requires = {
 | 
				
			||||||
| 
						 | 
					@ -296,7 +289,11 @@ return require('packer').startup(function(use)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	--language specific tools.
 | 
						--language specific tools.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	use 'simrat39/rust-tools.nvim'
 | 
						use{'simrat39/rust-tools.nvim',
 | 
				
			||||||
 | 
							config=function()
 | 
				
			||||||
 | 
								require('rust-tools-setup')
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if Packer_Bootstrap then
 | 
						if Packer_Bootstrap then
 | 
				
			||||||
		require('packer').sync()
 | 
							require('packer').sync()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										85
									
								
								neovim/.config/nvim/lua/rust-tools-setup.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								neovim/.config/nvim/lua/rust-tools-setup.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,85 @@
 | 
				
			||||||
 | 
					local nvim_lsp = require'lspconfig'
 | 
				
			||||||
 | 
					local opts = {
 | 
				
			||||||
 | 
						tools = {
 | 
				
			||||||
 | 
						autoSetHints = true,
 | 
				
			||||||
 | 
						hover_with_actions = true,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						-- how to execute terminal commands
 | 
				
			||||||
 | 
						executor = require("rust-tools/executors").termopen,
 | 
				
			||||||
 | 
						inlay_hints = {
 | 
				
			||||||
 | 
							-- Only show inlay hints for the current line
 | 
				
			||||||
 | 
							only_current_line = false,
 | 
				
			||||||
 | 
							-- Event which triggers a refersh of the inlay hints.
 | 
				
			||||||
 | 
							only_current_line_autocmd = "CursorHold",
 | 
				
			||||||
 | 
							-- whether to show parameter hints with the inlay hints or not
 | 
				
			||||||
 | 
							show_parameter_hints = true,
 | 
				
			||||||
 | 
							-- whether to show variable name before type hints with the inlay hints or not
 | 
				
			||||||
 | 
							show_variable_name = false,
 | 
				
			||||||
 | 
							-- prefix for parameter hints
 | 
				
			||||||
 | 
							parameter_hints_prefix = "<- ",
 | 
				
			||||||
 | 
							-- prefix for all the other hints (type, chaining)
 | 
				
			||||||
 | 
							other_hints_prefix = "=> ",
 | 
				
			||||||
 | 
							-- whether to align to the lenght of the longest line in the file
 | 
				
			||||||
 | 
							max_len_align = false,
 | 
				
			||||||
 | 
							-- padding from the left if max_len_align is true
 | 
				
			||||||
 | 
							max_len_align_padding = 1,
 | 
				
			||||||
 | 
							-- whether to align to the extreme right or not
 | 
				
			||||||
 | 
							right_align = true,
 | 
				
			||||||
 | 
							-- padding from the right if right_align is true
 | 
				
			||||||
 | 
							right_align_padding = 7,
 | 
				
			||||||
 | 
							-- The color of the hints
 | 
				
			||||||
 | 
							highlight = "Comment",
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						hover_actions = {
 | 
				
			||||||
 | 
							-- the border that is used for the hover window
 | 
				
			||||||
 | 
							border = {
 | 
				
			||||||
 | 
								{ "╭", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "─", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "╮", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "│", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "╯", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "─", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "╰", "FloatBorder" },
 | 
				
			||||||
 | 
								{ "│", "FloatBorder" },
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							-- whether the hover action window gets automatically focused
 | 
				
			||||||
 | 
							auto_focus = false,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						-- settings for showing the crate graph based on graphviz and the dot
 | 
				
			||||||
 | 
						-- command
 | 
				
			||||||
 | 
						crate_graph = {
 | 
				
			||||||
 | 
							-- Backend used for displaying the graph
 | 
				
			||||||
 | 
							backend = "x11",
 | 
				
			||||||
 | 
							-- where to store the output, nil for no output stored (relative
 | 
				
			||||||
 | 
							-- path from pwd)
 | 
				
			||||||
 | 
							output = nil,
 | 
				
			||||||
 | 
							-- true for all crates.io and external crates, false only the local
 | 
				
			||||||
 | 
							-- crates
 | 
				
			||||||
 | 
							full = true,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					-- all the opts to send to nvim-lspconfig
 | 
				
			||||||
 | 
					server = {
 | 
				
			||||||
 | 
						-- standalone file support
 | 
				
			||||||
 | 
						-- setting it to false may improve startup time
 | 
				
			||||||
 | 
						standalone = true,
 | 
				
			||||||
 | 
						settings = {
 | 
				
			||||||
 | 
							-- rust-analyer options
 | 
				
			||||||
 | 
							["rust-analyzer"] = {
 | 
				
			||||||
 | 
								-- enable clippy on save
 | 
				
			||||||
 | 
								checkOnSave = {
 | 
				
			||||||
 | 
									command = "clippy"
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
						-- debugging stuff
 | 
				
			||||||
 | 
						dap = {
 | 
				
			||||||
 | 
							adapter = {
 | 
				
			||||||
 | 
								type = "executable",
 | 
				
			||||||
 | 
								command = "lldb-vscode",
 | 
				
			||||||
 | 
								name = "rt_lldb",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					require('rust-tools').setup(opts)
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue