Updated my metals configuration

This commit is contained in:
pgfm 2022-06-22 08:37:54 -05:00
parent 1dfc54f27d
commit 9191504dba

View file

@ -200,6 +200,10 @@ nmap ; :Buffers<CR>
" Press Ctrl+P to show a list of files (+ fuzzy search)
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)
nnoremap <C-p> <cmd>Telescope find_files<cr>
nnoremap ; <cmd>Telescope buffers<cr>
@ -221,11 +225,12 @@ nmap [h <Plug>(GitGutterPrevHunk)
" LSP key bindings
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> gr <cmd>lua vim.lsp.buf.references()<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> 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>rn <cmd>lua vim.lsp.buf.rename()<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 }, },
},
mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<CR>"] = cmp.mapping.confirm({}),
["<Tab>"] = function(fallback)
if cmp.visible() then
cmp.select_next_item()
@ -323,15 +328,22 @@ metals_config.settings = {
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.capabilities = capabilities
metals_config.capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
vim.cmd([[augroup lsp]])
vim.cmd([[autocmd!]])
vim.cmd([[autocmd FileType scala setlocal omnifunc=v:lua.vim.lsp.omnifunc]])
vim.cmd([[autocmd FileType java,scala,sbt lua require("metals").initialize_or_attach(metals_config)]])
vim.cmd([[augroup end]])
-- Autocmd that will actually be in charging of starting the whole thing
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
vim.api.nvim_create_autocmd("FileType", {
pattern = { "scala", "sbt", "java" },
callback = function()
require("metals").initialize_or_attach(metals_config)
end,
group = nvim_metals_group,
})
EOF
" }}
@ -369,8 +381,13 @@ EOF
lua <<EOF
local lualine_gruvbox = require'lualine.themes.gruvbox'
local function metals_status_for_lualine()
return vim.g["metals_status"] or ""
end
require('lualine').setup {
options = { theme = lualine_gruvbox },
sections = { lualine_c = { 'filename', metals_status_for_lualine } }
}
EOF
" }}