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