diff options
author | Juan J. Martinez <jjm@usebox.net> | 2021-12-03 07:57:20 +0000 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2022-05-29 22:57:30 +0100 |
commit | 9ad923900317a45d216e62626c6ef32672771ee6 (patch) | |
tree | 0e0334c2b6cba84f523796ff7be3f018258507b2 /metals.vim | |
parent | 2fcdae15d7d24fd2601f2a008c15cd6cf400172f (diff) | |
download | dotnvim-9ad923900317a45d216e62626c6ef32672771ee6.tar.gz dotnvim-9ad923900317a45d216e62626c6ef32672771ee6.zip |
Using nvim-metals
Diffstat (limited to 'metals.vim')
-rw-r--r-- | metals.vim | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/metals.vim b/metals.vim new file mode 100644 index 0000000..ddb7aca --- /dev/null +++ b/metals.vim @@ -0,0 +1,57 @@ +" nvim-lsp Mappings +" +nnoremap <silent> <C-]> <cmd>lua vim.lsp.buf.definition()<CR> +nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<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> <leader>rn <cmd>lua vim.lsp.buf.rename()<CR> +nnoremap <silent> <leader>F <cmd>lua vim.lsp.buf.formatting()<CR> +nnoremap <silent> <leader>ca <cmd>lua vim.lsp.buf.code_action()<CR> +nnoremap <silent> <leader>ws <cmd>lua require'metals'.worksheet_hover()<CR> +nnoremap <silent> <leader>a <cmd>lua require'metals'.open_all_diagnostics()<CR> +nnoremap <silent> <space>d <cmd>lua vim.lsp.diagnostic.set_loclist()<CR> +nnoremap <silent> [c <cmd>lua vim.lsp.diagnostic.goto_prev { wrap = false }<CR> +nnoremap <silent> ]c <cmd>lua vim.lsp.diagnostic.goto_next { wrap = false }<CR> + +" nvim-lsp Settings +" +" using latest stable +" let g:metals_server_version = '0.9.8+10-334e402e-SNAPSHOT' + +" nvim-metals +" +:lua << EOF + metals_config = require'metals'.bare_config() + metals_config.settings = { + showImplicitArguments = true, + excludedPackages = { + "akka.actor.typed.javadsl", + "com.github.swagger.akka.javadsl" + } + } + + metals_config.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, { + virtual_text = { + prefix = '', + } + } + ) +EOF + +if has('nvim-0.5') + augroup lsp + au! + au FileType scala,sbt lua require('metals').initialize_or_attach(metals_config) + augroup end +endif + +" Helpful general settings +" +autocmd FileType scala setlocal omnifunc=v:lua.vim.lsp.omnifunc + +" Set completeopt to have a better completion experience +set completeopt=menuone,noinsert,noselect + |