From 9191504dbaf8147c12ae7d5c55c1b87057a04743 Mon Sep 17 00:00:00 2001 From: pgfm Date: Wed, 22 Jun 2022 08:37:54 -0500 Subject: [PATCH] Updated my metals configuration --- .config/nvim/init.vim | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index 54b204d..dc9ebea 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -200,6 +200,10 @@ nmap ; :Buffers " Press Ctrl+P to show a list of files (+ fuzzy search) nmap :Files +" Close the quickfix window (example: this shows up when showing references +" via LSP). +nnoremap cq :ccl + " Telescope Bindings (e.g. file and buffer search) nnoremap Telescope find_files nnoremap ; Telescope buffers @@ -221,11 +225,12 @@ nmap [h (GitGutterPrevHunk) " LSP key bindings nnoremap K lua vim.lsp.buf.hover() -nnoremap gd lua vim.lsp.buf.definition() nnoremap gi lua vim.lsp.buf.implementation() nnoremap gr lua vim.lsp.buf.references() nnoremap gds lua vim.lsp.buf.document_symbol() nnoremap gws lua vim.lsp.buf.workspace_symbol() +nnoremap gd lua vim.lsp.buf.definition() +nnoremap cl lua vim.lsp.codelens.run() nnoremap D lua vim.lsp.buf.type_definition() nnoremap rn lua vim.lsp.buf.rename() nnoremap ca lua vim.lsp.buf.code_action() @@ -269,7 +274,7 @@ cmp.setup({ { name = 'buffer', option = { keyword_length = 3 }, }, }, mapping = { - [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping.confirm({}), [""] = 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 <