jdtls, sqls, more leader mappings
This commit is contained in:
parent
2486dba138
commit
524afbb9aa
120
init.lua
120
init.lua
|
@ -144,7 +144,7 @@ do
|
|||
end
|
||||
end
|
||||
vim.cmd [[
|
||||
tnoremap <S-Esc> <C-\><C-n>'
|
||||
tnoremap <S-Esc> <C-\><C-n>
|
||||
]]
|
||||
|
||||
-- Commands
|
||||
|
@ -174,7 +174,7 @@ au('BufWritePost', {
|
|||
desc = 'Reload config when it is saved, and compile packer cache',
|
||||
})
|
||||
au('TextYankPost', {
|
||||
callback = vim.highlight.on_yank,
|
||||
callback = function() vim.highlight.on_yank() end,
|
||||
desc = 'Highlight when text is yanked',
|
||||
})
|
||||
au('BufReadPost', {
|
||||
|
@ -290,6 +290,8 @@ require'packer'.startup(function(use)
|
|||
use 'hrsh7th/cmp-buffer'
|
||||
use 'hrsh7th/cmp-path'
|
||||
use 'hrsh7th/cmp-cmdline'
|
||||
use 'nanotee/sqls.nvim'
|
||||
use 'mfussenegger/nvim-jdtls'
|
||||
use 'simrat39/rust-tools.nvim'
|
||||
use {'jose-elias-alvarez/null-ls.nvim', requires = {'nvim-lua/plenary.nvim'}, config = function ()
|
||||
local null_ls = require'null-ls'
|
||||
|
@ -302,7 +304,9 @@ require'packer'.startup(function(use)
|
|||
end}
|
||||
use 'SmiteshP/nvim-navic'
|
||||
use {'utilyre/barbecue.nvim', config = function ()
|
||||
require'barbecue'.setup()
|
||||
require'barbecue'.setup {
|
||||
show_modified = true,
|
||||
}
|
||||
end}
|
||||
|
||||
-- UI elements --
|
||||
|
@ -380,7 +384,7 @@ require'packer'.startup(function(use)
|
|||
r = {dap.step_back, 'Step back'},
|
||||
R = {dap.reverse_continue, 'Continue backwards'},
|
||||
C = {dap.run_to_cursor, 'Continue to cursor'},
|
||||
p = {dap.paise, 'Pause execution'}
|
||||
p = {dap.pause, 'Pause execution'}
|
||||
}
|
||||
}
|
||||
end}
|
||||
|
@ -475,7 +479,7 @@ require'packer'.startup(function(use)
|
|||
},
|
||||
}
|
||||
end}
|
||||
use 'j-hui/fidget.nvim'
|
||||
use {'j-hui/fidget.nvim', branch = 'legacy'}
|
||||
use 'tpope/vim-fugitive'
|
||||
use 'tpope/vim-rhubarb'
|
||||
use 'shumphrey/fugitive-gitlab.vim'
|
||||
|
@ -498,7 +502,16 @@ require'packer'.startup(function(use)
|
|||
end}
|
||||
use {'williamboman/mason-lspconfig.nvim', config = function()
|
||||
require'mason-lspconfig'.setup {
|
||||
automatic_installation = true,
|
||||
automatic_installation = true
|
||||
-- figure out how to ensure java-test and java-debug-adapter
|
||||
}
|
||||
end}
|
||||
use {'TimUntersberger/neogit', config = function ()
|
||||
require'neogit'.setup {
|
||||
disable_context_highlighting = true,
|
||||
integrations = {
|
||||
diffview = true,
|
||||
},
|
||||
}
|
||||
end}
|
||||
use {'rcarriga/nvim-notify', after = 'telescope.nvim', config = function ()
|
||||
|
@ -558,6 +571,7 @@ require'packer'.startup(function(use)
|
|||
h = {'<Cmd>Telescope help_tags<CR>', 'Help page'},
|
||||
p = {'<Cmd>Telescope project<CR>', 'Projects'},
|
||||
s = {'<Cmd>Telescope lsp_dynamic_workspace_symbols<CR>', 'Symbols'},
|
||||
S = {'<Cmd>Telescope lsp_document_symbols<CR>', 'Symbols - current file'},
|
||||
n = {'<Cmd>Telescope notify<CR>', 'Notifications'},
|
||||
m = {'<Cmd>Telescope man_pages<CR>', 'Man pages'},
|
||||
[':'] = {'<Cmd>Telescope commands<CR>', 'Commands'},
|
||||
|
@ -696,6 +710,8 @@ require'gitsigns'.setup {
|
|||
v = {gitsigns.select_hunk, 'Visual select hunk'},
|
||||
d = {gitsigns.toggle_deleted, 'Toggle deleted lines'},
|
||||
w = {gitsigns.toggle_word_diff, 'Toggle word diffs'},
|
||||
l = {gitsigns.blame_line, 'Blame current line'},
|
||||
L = {gitsigns.toggle_line_blame, 'Toggle line blame'},
|
||||
b = {':Gitsigns change_base ', 'Change diff base'},
|
||||
B = {gitsigns.reset_base, 'Reset diff base'},
|
||||
}
|
||||
|
@ -783,6 +799,14 @@ local capabilities = require'cmp_nvim_lsp'.default_capabilities()
|
|||
local function on_attach(client, bufnr)
|
||||
|
||||
require'which-key'.register({
|
||||
['<Leader>l'] = {
|
||||
d = {vim.lsp.buf.definition, 'Goto definition'},
|
||||
D = {vim.lsp.buf.implementation, 'Goto implementation'},
|
||||
a = {vim.lsp.buf.code_action, 'Code action'},
|
||||
r = {vim.lsp.buf.rename, 'Rename'},
|
||||
t = {vim.lsp.buf.type_definition, 'Type definition'},
|
||||
u = {vim.lsp.buf.references, 'Usages/references'}
|
||||
},
|
||||
g = {
|
||||
d = {vim.lsp.buf.definition, 'Goto definition'},
|
||||
D = {vim.lsp.buf.implementation, 'Goto implementation'},
|
||||
|
@ -849,9 +873,78 @@ require'lspconfig'.lua_ls.setup {
|
|||
|
||||
require'lspconfig'.bashls.setup(default)
|
||||
require'lspconfig'.clangd.setup(default)
|
||||
require'lspconfig'.jdtls.setup(default)
|
||||
au('FileType', {
|
||||
pattern = 'java',
|
||||
callback = function ()
|
||||
local ok, jdtls = pcall(require, 'jdtls')
|
||||
if not ok then return end
|
||||
|
||||
local path = vim.fn.stdpath('data') .. '/mason/packages/jdtls'
|
||||
local root_dir = jdtls.setup.find_root({'.git', 'mvnw', 'gradlew'})
|
||||
|
||||
local config = {
|
||||
-- The command to launch jdtls with
|
||||
cmd = {
|
||||
'jdtls',
|
||||
-- Enable logging
|
||||
'--jvm-arg=-Dlog.level=ALL',
|
||||
'--jvm-arg=-Dlog.protocol=true',
|
||||
-- Enable lombok
|
||||
'--jvm-arg=-javaagent:' .. path .. '/lombok.jar',
|
||||
-- store workpace data in ~/.local/share/eclipse/<project-name>
|
||||
'-data', vim.fn.expand('~/.local/share/eclipse/') .. vim.fn.fnamemodify(root_dir, ':p:h:t')
|
||||
},
|
||||
|
||||
root_dir = root_dir,
|
||||
|
||||
settings = {
|
||||
java = {},
|
||||
},
|
||||
|
||||
init_options = {
|
||||
-- JDTLS plugins
|
||||
bundles = (function ()
|
||||
-- add java-debug-adapter
|
||||
local bundles = {
|
||||
vim.fn.glob(vim.fn.stdpath('data') .. '/mason/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin-*.jar', 1)
|
||||
}
|
||||
-- add java-test
|
||||
vim.list_extend(bundles, vim.split(
|
||||
vim.fn.glob(vim.fn.stdpath'data' .. '/mason/packages/java-test/extension/server/*.jar', 1),
|
||||
'\n'
|
||||
))
|
||||
|
||||
return bundles
|
||||
end)(),
|
||||
},
|
||||
|
||||
on_attach = function (client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
jdtls.setup_dap()
|
||||
jdtls.setup.add_commands()
|
||||
end,
|
||||
}
|
||||
|
||||
jdtls.start_or_attach(config)
|
||||
end
|
||||
})
|
||||
require'lspconfig'.nil_ls.setup(default)
|
||||
require'lspconfig'.pyright.setup(default)
|
||||
-- Defer setup to silence deprecation notice
|
||||
au('FileType', {
|
||||
pattern = 'sql',
|
||||
callback = function ()
|
||||
require'lspconfig'.sqls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = function (client, bufnr)
|
||||
on_attach(client, bufnr)
|
||||
local ok, sqls = pcall(require, 'sqls')
|
||||
if not ok then return end
|
||||
sqls.on_attach(client, bufnr)
|
||||
end
|
||||
}
|
||||
end,
|
||||
})
|
||||
require'lspconfig'.tsserver.setup(default)
|
||||
require'lspconfig'.vimls.setup(default)
|
||||
|
||||
|
@ -954,7 +1047,7 @@ g.startify_lists = {
|
|||
|
||||
|
||||
---- symbols-outline ----
|
||||
vim.g.symbols_outline = {
|
||||
require'symbols-outline'.setup {
|
||||
-- Don't display preview automatically
|
||||
auto_preview = false,
|
||||
-- Don't highlight the hovered item
|
||||
|
@ -1021,14 +1114,13 @@ require('nvim-tree').setup {
|
|||
},
|
||||
-- Match tree cwd to vim's cwd
|
||||
update_cwd = true,
|
||||
view = {
|
||||
width = 45,
|
||||
},
|
||||
}
|
||||
vim.cmd'highlight NvimTreeOpenedFile guifg=NONE guibg=NONE gui=italic'
|
||||
au('ColorScheme', {
|
||||
desc = 'Change NvimTreeOpenedFile highlight',
|
||||
command = 'highlight NvimTreeOpenedFile guifg=NONE guibg=NONE gui=italic'
|
||||
})
|
||||
|
||||
vim.keymap.set('n', '<Leader>t', '<Cmd>NvimTreeFindFileToggle<CR>', {desc = 'Nvim Tree'})
|
||||
vim.keymap.set('n', '<Leader>t', '<Cmd>NvimTreeFindFile<CR>', {desc = 'Nvim Tree'})
|
||||
|
||||
|
||||
---- treesitter ----
|
||||
|
@ -1038,7 +1130,7 @@ require'nvim-treesitter.configs'.setup {
|
|||
enable = true,
|
||||
},
|
||||
ensure_installed = {'lua', 'html', 'c', 'cpp', 'nix', 'vim', 'rust', 'bash', 'markdown', 'java', 'markdown_inline'},
|
||||
highlight = { enable = true, disable = 'rust' },
|
||||
highlight = { enable = true, disable = {'rust', 'bash'} },
|
||||
incremental_selection = { enable = true },
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue