Updated my metals configuration
This commit is contained in:
		
							parent
							
								
									1dfc54f27d
								
							
						
					
					
						commit
						9191504dba
					
				
					 1 changed files with 26 additions and 9 deletions
				
			
		|  | @ -200,6 +200,10 @@ nmap ; :Buffers<CR> | ||||||
| " Press Ctrl+P to show a list of files (+ fuzzy search) | " Press Ctrl+P to show a list of files (+ fuzzy search) | ||||||
| nmap <C-p> :Files<CR> | nmap <C-p> :Files<CR> | ||||||
| 
 | 
 | ||||||
|  | " Close the quickfix window (example: this shows up when showing references  | ||||||
|  | " via LSP). | ||||||
|  | nnoremap <leader>cq :ccl<cr> | ||||||
|  | 
 | ||||||
| " Telescope Bindings (e.g. file and buffer search) | " Telescope Bindings (e.g. file and buffer search) | ||||||
| nnoremap <C-p> <cmd>Telescope find_files<cr> | nnoremap <C-p> <cmd>Telescope find_files<cr> | ||||||
| nnoremap ; <cmd>Telescope buffers<cr> | nnoremap ; <cmd>Telescope buffers<cr> | ||||||
|  | @ -221,11 +225,12 @@ nmap [h <Plug>(GitGutterPrevHunk) | ||||||
| 
 | 
 | ||||||
| " LSP key bindings | " LSP key bindings | ||||||
| nnoremap <silent> K           <cmd>lua vim.lsp.buf.hover()<CR> | nnoremap <silent> K           <cmd>lua vim.lsp.buf.hover()<CR> | ||||||
| nnoremap <silent> gd          <cmd>lua vim.lsp.buf.definition()<CR> |  | ||||||
| nnoremap <silent> gi          <cmd>lua vim.lsp.buf.implementation()<CR> | nnoremap <silent> gi          <cmd>lua vim.lsp.buf.implementation()<CR> | ||||||
| nnoremap <silent> gr          <cmd>lua vim.lsp.buf.references()<CR> | nnoremap <silent> gr          <cmd>lua vim.lsp.buf.references()<CR> | ||||||
| nnoremap <silent> gds         <cmd>lua vim.lsp.buf.document_symbol()<CR> | nnoremap <silent> gds         <cmd>lua vim.lsp.buf.document_symbol()<CR> | ||||||
| nnoremap <silent> gws         <cmd>lua vim.lsp.buf.workspace_symbol()<CR> | nnoremap <silent> gws         <cmd>lua vim.lsp.buf.workspace_symbol()<CR> | ||||||
|  | nnoremap <silent> gd          <cmd>lua vim.lsp.buf.definition()<CR> | ||||||
|  | nnoremap <silent> <leader>cl  <cmd>lua vim.lsp.codelens.run()<CR> | ||||||
| nnoremap <silent> <leader>D   <cmd>lua vim.lsp.buf.type_definition()<CR> | nnoremap <silent> <leader>D   <cmd>lua vim.lsp.buf.type_definition()<CR> | ||||||
| nnoremap <silent> <leader>rn  <cmd>lua vim.lsp.buf.rename()<CR> | nnoremap <silent> <leader>rn  <cmd>lua vim.lsp.buf.rename()<CR> | ||||||
| nnoremap <silent> <leader>ca  <cmd>lua vim.lsp.buf.code_action()<CR> | nnoremap <silent> <leader>ca  <cmd>lua vim.lsp.buf.code_action()<CR> | ||||||
|  | @ -269,7 +274,7 @@ cmp.setup({ | ||||||
|     { name = 'buffer', option = { keyword_length = 3 }, }, |     { name = 'buffer', option = { keyword_length = 3 }, }, | ||||||
|   }, |   }, | ||||||
|   mapping = { |   mapping = { | ||||||
|     ["<CR>"] = cmp.mapping.confirm({ select = true }), |     ["<CR>"] = cmp.mapping.confirm({}), | ||||||
|     ["<Tab>"] = function(fallback) |     ["<Tab>"] = function(fallback) | ||||||
|       if cmp.visible() then |       if cmp.visible() then | ||||||
|         cmp.select_next_item() |         cmp.select_next_item() | ||||||
|  | @ -323,15 +328,22 @@ metals_config.settings = { | ||||||
|   showInferredType = true |   showInferredType = true | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | -- This is a tricky option and _nothing_ will show up unless... | ||||||
|  | -- "However, to enable this you _must_ have the metals status shown in your  | ||||||
|  | --  status bar somehow." | ||||||
| metals_config.init_options.statusBarProvider = "on" | metals_config.init_options.statusBarProvider = "on" | ||||||
| 
 | 
 | ||||||
| metals_config.capabilities = capabilities | metals_config.capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities) | ||||||
| 
 | 
 | ||||||
| vim.cmd([[augroup lsp]]) | -- Autocmd that will actually be in charging of starting the whole thing | ||||||
| vim.cmd([[autocmd!]]) | local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true }) | ||||||
| vim.cmd([[autocmd FileType scala setlocal omnifunc=v:lua.vim.lsp.omnifunc]]) | vim.api.nvim_create_autocmd("FileType", { | ||||||
| vim.cmd([[autocmd FileType java,scala,sbt lua require("metals").initialize_or_attach(metals_config)]]) |   pattern = { "scala", "sbt", "java" }, | ||||||
| vim.cmd([[augroup end]]) |   callback = function() | ||||||
|  |     require("metals").initialize_or_attach(metals_config) | ||||||
|  |   end, | ||||||
|  |   group = nvim_metals_group, | ||||||
|  | }) | ||||||
| EOF | EOF | ||||||
| " }} | " }} | ||||||
| 
 | 
 | ||||||
|  | @ -369,8 +381,13 @@ EOF | ||||||
| lua <<EOF | lua <<EOF | ||||||
| local lualine_gruvbox = require'lualine.themes.gruvbox' | local lualine_gruvbox = require'lualine.themes.gruvbox' | ||||||
| 
 | 
 | ||||||
|  | local function metals_status_for_lualine() | ||||||
|  |   return vim.g["metals_status"] or "" | ||||||
|  | end | ||||||
|  | 
 | ||||||
| require('lualine').setup { | require('lualine').setup { | ||||||
|   options = { theme  = lualine_gruvbox }, |   options = { theme = lualine_gruvbox }, | ||||||
|  |   sections = { lualine_c = { 'filename', metals_status_for_lualine } } | ||||||
| } | } | ||||||
| EOF | EOF | ||||||
| " }} | " }} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 pgfm
						pgfm