From cd124a8ca5bbdf4054f08ad2e337759c387c84a1 Mon Sep 17 00:00:00 2001 From: Shadow Cat Date: Thu, 9 Feb 2023 10:44:47 -0500 Subject: [PATCH] uhh lsp mapping stuff + java --- ftplugin/java.lua | 9 +++++++- lua/config/lsp-settings.lua | 39 ++++++++++++++++++++++++++++++++ lua/config/mappings.lua | 6 +++++ lua/config/plugins/lsp.lua | 45 ++++--------------------------------- 4 files changed, 57 insertions(+), 42 deletions(-) create mode 100644 lua/config/lsp-settings.lua diff --git a/ftplugin/java.lua b/ftplugin/java.lua index 9221559..4a83d83 100644 --- a/ftplugin/java.lua +++ b/ftplugin/java.lua @@ -1,6 +1,13 @@ +local settings = require 'config.lsp-settings' +local on_attach = settings.on_attach +local capabilities = settings.capabilities + local config = { - cmd = {'/path/to/jdt-language-server/bin/jdtls'}, + cmd = {'/bin/jdtls'}, root_dir = vim.fs.dirname(vim.fs.find({'.gradlew', '.git', 'mvnw'}, { upward = true })[1]), + on_attach = on_attach, + capabilities = capabilities, } + require('jdtls').start_or_attach(config) diff --git a/lua/config/lsp-settings.lua b/lua/config/lsp-settings.lua new file mode 100644 index 0000000..63a8164 --- /dev/null +++ b/lua/config/lsp-settings.lua @@ -0,0 +1,39 @@ +local on_attach = function(_, bufnr) + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + vim.o.signcolumn = 'yes' + + local map = function(from, to) + vim.keymap.set('n', from, to, + { noremap = true, silent = true, buffer = bufnr } + ) + end + + map('gd', vim.lsp.buf.definition) + map('gr', vim.lsp.buf.references) + map('gi', vim.lsp.buf.implementation) + map('gD', vim.lsp.buf.declaration) + + map('K', vim.lsp.buf.hover) + map('', vim.lsp.buf.signature_help) + + map('wa', vim.lsp.buf.add_workspace_folder) + map('wr', vim.lsp.buf.remove_workspace_folder) + map('wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end) + map('D', vim.lsp.buf.type_definition) + map('rn', vim.lsp.buf.rename) + map('ca', vim.lsp.buf.code_action) + map('fm', function() + vim.lsp.buf.format { async = true } + end) +end + +local capabilities = require 'cmp_nvim_lsp'.default_capabilities( + vim.lsp.protocol.make_client_capabilities() +) + +return { + on_attach = on_attach, + capabilities = capabilities +} diff --git a/lua/config/mappings.lua b/lua/config/mappings.lua index e8d1264..c892668 100644 --- a/lua/config/mappings.lua +++ b/lua/config/mappings.lua @@ -16,6 +16,12 @@ m.nmap('', 'noh') m.cmd('spl', 'setlocal spell spelllang=en_us') m.cmd('spL', 'setlocal nospell') +-- lsp +m.nmap('E', vim.diagnostic.open_float) +m.nmap('[d', vim.diagnostic.goto_prev) +m.nmap(']d', vim.diagnostic.goto_next) +m.nmap('q', vim.diagnostic.setloclist) + -- colemak-dh local l = u.layout l.swap('n', 'h') diff --git a/lua/config/plugins/lsp.lua b/lua/config/plugins/lsp.lua index 92246d4..83639c7 100644 --- a/lua/config/plugins/lsp.lua +++ b/lua/config/plugins/lsp.lua @@ -1,45 +1,7 @@ local config = function() - local u = require 'config.utils'.mapping - - u.nmap('E', vim.diagnostic.open_float) - u.nmap('[d', vim.diagnostic.goto_prev) - u.nmap(']d', vim.diagnostic.goto_next) - u.nmap('q', vim.diagnostic.setloclist) - - local on_attach = function(_, bufnr) - vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') - vim.o.signcolumn = 'yes' - - local map = function(from, to) - vim.keymap.set('n', from, to, - { noremap = true, silent = true, buffer = bufnr } - ) - end - - map('gd', vim.lsp.buf.definition) - map('gr', vim.lsp.buf.references) - map('gi', vim.lsp.buf.implementation) - map('gD', vim.lsp.buf.declaration) - - map('K', vim.lsp.buf.hover) - map('', vim.lsp.buf.signature_help) - - map('wa', vim.lsp.buf.add_workspace_folder) - map('wr', vim.lsp.buf.remove_workspace_folder) - map('wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end) - map('D', vim.lsp.buf.type_definition) - map('rn', vim.lsp.buf.rename) - map('ca', vim.lsp.buf.code_action) - map('fm', function() - vim.lsp.buf.format { async = true } - end) - end - - local capabilities = require 'cmp_nvim_lsp'.default_capabilities( - vim.lsp.protocol.make_client_capabilities() - ) + local settings = require 'config.lsp-settings' + local on_attach = settings.on_attach + local capabilities = settings.capabilities require 'lspconfig'.sumneko_lua.setup { on_attach = on_attach, @@ -108,4 +70,5 @@ return function(use) 'scalameta/nvim-metals', requires = { "nvim-lua/plenary.nvim" } } + use 'mfussenegger/nvim-jdtls' end