java stuff
This commit is contained in:
15
scripts/scripts/javalsp
Executable file
15
scripts/scripts/javalsp
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
cd "$HOME/bin/jdtls"
|
||||||
|
|
||||||
|
java \
|
||||||
|
-Declipse.application=org.eclipse.jdt.ls.core.id1 \
|
||||||
|
-Dosgi.bundles.defaultStartLevel=4 \
|
||||||
|
-Declipse.product=org.eclipse.jdt.ls.core.product \
|
||||||
|
-Dlog.level=ALL \
|
||||||
|
-noverify \
|
||||||
|
-Xmx1G \
|
||||||
|
-jar ./plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar \
|
||||||
|
-configuration ./config_linux \
|
||||||
|
-data "$HOME/jdtls_data" \
|
||||||
|
--add-modules=ALL-SYSTEM \
|
||||||
|
--add-opens java.base/java.util=ALL-UNNAMED \
|
||||||
|
--add-opens java.base/java.lang=ALL-UNNAMED
|
198
vim/.vim/lua/config/dap.lua
Normal file
198
vim/.vim/lua/config/dap.lua
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
local map = require("utils").map
|
||||||
|
|
||||||
|
map("n", "<leader>db", ":lua require'dap'.toggle_breakpoint()<CR>")
|
||||||
|
map("n", "<leader>dsi", ":lua require'dap'.step_into()<CR>")
|
||||||
|
map("n", "<leader>dso", ":lua require'dap'.step_over()<CR>")
|
||||||
|
map("n", "<leader>di", ":lua require'dap'.repl.open()<CR>")
|
||||||
|
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
require'jdtls.setup'.add_commands()
|
||||||
|
require'jdtls'.setup_dap()
|
||||||
|
require'lsp-status'.register_progress()
|
||||||
|
-- require'lspkind'.init()
|
||||||
|
-- require'lspsaga'.init_lsp_saga()
|
||||||
|
|
||||||
|
-- Kommentary
|
||||||
|
vim.api.nvim_set_keymap("n", "<leader>/", "<plug>kommentary_line_default", {})
|
||||||
|
vim.api.nvim_set_keymap("v", "<leader>/", "<plug>kommentary_visual_default", {})
|
||||||
|
|
||||||
|
vim.api.nvim_exec([[
|
||||||
|
augroup FormatAutogroup
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost *.java FormatWrite
|
||||||
|
augroup end
|
||||||
|
]], true)
|
||||||
|
|
||||||
|
local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end
|
||||||
|
local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end
|
||||||
|
|
||||||
|
buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||||
|
|
||||||
|
-- Mappings.
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
-- buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>wa', '<cmd>lua vim.lsp.buf.add_workspace_folder()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>wr', '<cmd>lua vim.lsp.buf.remove_workspace_folder()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>wl', '<cmd>lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references() && vim.cmd("copen")<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)
|
||||||
|
-- buf_set_keymap('n', '<leader>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)
|
||||||
|
-- Java specific
|
||||||
|
-- buf_set_keymap("n", "<leader>di", "<Cmd>lua require'jdtls'.organize_imports()<CR>", opts)
|
||||||
|
-- buf_set_keymap("n", "<leader>dt", "<Cmd>lua require'jdtls'.test_class()<CR>", opts)
|
||||||
|
-- buf_set_keymap("n", "<leader>dn", "<Cmd>lua require'jdtls'.test_nearest_method()<CR>", opts)
|
||||||
|
buf_set_keymap("v", "<leader>de", "<Esc><Cmd>lua require('jdtls').extract_variable(true)<CR>", opts)
|
||||||
|
buf_set_keymap("n", "<leader>de", "<Cmd>lua require('jdtls').extract_variable()<CR>", opts)
|
||||||
|
buf_set_keymap("v", "<leader>dm", "<Esc><Cmd>lua require('jdtls').extract_method(true)<CR>", opts)
|
||||||
|
|
||||||
|
buf_set_keymap("n", "<leader>cf", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
|
||||||
|
|
||||||
|
vim.api.nvim_exec([[
|
||||||
|
hi LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
hi LspReferenceText cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
hi LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow
|
||||||
|
augroup lsp_document_highlight
|
||||||
|
autocmd!
|
||||||
|
autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
|
||||||
|
autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
|
||||||
|
augroup END
|
||||||
|
]], false)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
local root_markers = {'gradlew', 'pom.xml','BUILD'}
|
||||||
|
local root_dir = require('jdtls.setup').find_root(root_markers)
|
||||||
|
local home = os.getenv('HOME')
|
||||||
|
|
||||||
|
local capabilities = {
|
||||||
|
workspace = {
|
||||||
|
configuration = true
|
||||||
|
},
|
||||||
|
textDocument = {
|
||||||
|
completion = {
|
||||||
|
completionItem = {
|
||||||
|
snippetSupport = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
local workspace_folder = home .. "/.workspace" .. vim.fn.fnamemodify(root_dir, ":p:h:t")
|
||||||
|
local config = {
|
||||||
|
flags = {
|
||||||
|
allow_incremental_sync = true,
|
||||||
|
};
|
||||||
|
capabilities = capabilities,
|
||||||
|
on_attach = on_attach,
|
||||||
|
}
|
||||||
|
|
||||||
|
config.settings = {
|
||||||
|
['java.format.settings.url'] = home .. "/.config/nvim/language-servers/java-google-formatter.xml",
|
||||||
|
['java.format.settings.profile'] = "GoogleStyle",
|
||||||
|
java = {
|
||||||
|
signatureHelp = { enabled = true };
|
||||||
|
contentProvider = { preferred = 'fernflower' };
|
||||||
|
completion = {
|
||||||
|
favoriteStaticMembers = {
|
||||||
|
"org.hamcrest.MatcherAssert.assertThat",
|
||||||
|
"org.hamcrest.Matchers.*",
|
||||||
|
"org.hamcrest.CoreMatchers.*",
|
||||||
|
"org.junit.jupiter.api.Assertions.*",
|
||||||
|
"java.util.Objects.requireNonNull",
|
||||||
|
"java.util.Objects.requireNonNullElse",
|
||||||
|
"org.mockito.Mockito.*"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
sources = {
|
||||||
|
organizeImports = {
|
||||||
|
starThreshold = 9999;
|
||||||
|
staticStarThreshold = 9999;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
codeGeneration = {
|
||||||
|
toString = {
|
||||||
|
template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
configuration = {
|
||||||
|
runtimes = {
|
||||||
|
{
|
||||||
|
name = "JavaSE-11",
|
||||||
|
path = home .. "/.sdkman/candidates/java/11.0.10-open/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "JavaSE-14",
|
||||||
|
path = home .. "/.sdkman/candidates/java/14.0.2-open/",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "JavaSE-15",
|
||||||
|
path = home .. "/.sdkman/candidates/java/15.0.1-open/",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
config.cmd = {'java-lsp', workspace_folder}
|
||||||
|
config.on_attach = on_attach
|
||||||
|
config.on_init = function(client, _)
|
||||||
|
client.notify('workspace/didChangeConfiguration', { settings = config.settings })
|
||||||
|
end
|
||||||
|
|
||||||
|
local extendedClientCapabilities = require'jdtls'.extendedClientCapabilities
|
||||||
|
extendedClientCapabilities.resolveAdditionalTextEditsSupport = true
|
||||||
|
config.init_options = {
|
||||||
|
-- bundles = bundles;
|
||||||
|
extendedClientCapabilities = extendedClientCapabilities;
|
||||||
|
}
|
||||||
|
|
||||||
|
-- UI
|
||||||
|
local finders = require'telescope.finders'
|
||||||
|
local sorters = require'telescope.sorters'
|
||||||
|
local actions = require'telescope.actions'
|
||||||
|
local pickers = require'telescope.pickers'
|
||||||
|
require('jdtls.ui').pick_one_async = function(items, prompt, label_fn, cb)
|
||||||
|
local opts = {}
|
||||||
|
pickers.new(opts, {
|
||||||
|
prompt_title = prompt,
|
||||||
|
finder = finders.new_table {
|
||||||
|
results = items,
|
||||||
|
entry_maker = function(entry)
|
||||||
|
return {
|
||||||
|
value = entry,
|
||||||
|
display = label_fn(entry),
|
||||||
|
ordinal = label_fn(entry),
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
sorter = sorters.get_generic_fuzzy_sorter(),
|
||||||
|
attach_mappings = function(prompt_bufnr)
|
||||||
|
actions.goto_file_selection_edit:replace(function()
|
||||||
|
local selection = actions.get_selected_entry(prompt_bufnr)
|
||||||
|
actions.close(prompt_bufnr)
|
||||||
|
|
||||||
|
cb(selection.value)
|
||||||
|
end)
|
||||||
|
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
}):find()
|
||||||
|
end
|
||||||
|
|
||||||
|
local dap = require('dap')
|
||||||
|
dap.configurations.java = {
|
||||||
|
{
|
||||||
|
type = 'java';
|
||||||
|
request = 'attach';
|
||||||
|
name = "Debug (Attach) - Remote";
|
||||||
|
hostName = "127.0.0.1";
|
||||||
|
port = 5005;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Server
|
||||||
|
require('jdtls').start_or_attach(config)
|
||||||
|
|
@ -104,6 +104,13 @@ require('packer').startup(function(use)
|
|||||||
}
|
}
|
||||||
use 'apalmer1377/factorus'
|
use 'apalmer1377/factorus'
|
||||||
|
|
||||||
|
use {
|
||||||
|
'mfussenegger/nvim-dap',
|
||||||
|
'mfussenegger/nvim-jdtls',
|
||||||
|
config = [[ require("config.dap")]],
|
||||||
|
ft = {'java','kotlin'}
|
||||||
|
}
|
||||||
|
|
||||||
use 'hrsh7th/vim-vsnip'
|
use 'hrsh7th/vim-vsnip'
|
||||||
use 'kosayoda/nvim-lightbulb'
|
use 'kosayoda/nvim-lightbulb'
|
||||||
use {'andymass/vim-matchup', event = 'VimEnter'}
|
use {'andymass/vim-matchup', event = 'VimEnter'}
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
" -------- VIM-GO --------
|
|
||||||
let g:go_def_mode='gopls'
|
|
||||||
let g:go_info_mode="gopls"
|
|
||||||
let g:go_auto_type_info='gopls'
|
|
||||||
let g:go_fmt_command = "goimports"
|
|
||||||
let g:go_metalinter_autosave = 0
|
|
||||||
let g:go_metalinter_command = "golangci-lint"
|
|
||||||
let g:go_metalinter_enabled = ['govet', 'errcheck', 'deadcode', 'staticcheck', 'ineffassign']
|
|
||||||
let g:go_metalinter_deadline = "10s"
|
|
||||||
let g:go_metalinter_autosave_enabled = ['govet', 'errcheck', 'deadcode', 'staticcheck', 'ineffassign']
|
|
||||||
|
|
||||||
let g:go_highlight_functions = 1
|
|
||||||
let g:go_highlight_function_calls = 1
|
|
||||||
let g:go_highlight_methods = 1
|
|
||||||
let g:go_highlight_fields = 1
|
|
||||||
let g:go_highlight_types = 1
|
|
||||||
let g:go_highlight_structs = 1
|
|
||||||
let g:go_highlight_interfaces = 1
|
|
||||||
let g:go_highlight_operators = 1
|
|
||||||
let g:go_highlight_build_constraints = 1
|
|
||||||
let g:go_code_completion_enabled = 1
|
|
||||||
|
|
||||||
let g:go_auto_type_info = 1
|
|
||||||
|
|
||||||
let g:syntastic_c_checkers = []
|
|
||||||
let g:syntastic_rust_checkers = []
|
|
||||||
let g:syntastic_cpp_checkers = []
|
|
||||||
let g:syntastic_python_python_exec = 'python3'
|
|
||||||
|
|
||||||
" get rid of bull shit mappings
|
|
||||||
let g:go_doc_keywordprg_enabled = 0
|
|
||||||
let g:go_def_mapping_enabled = 0
|
|
||||||
let g:go_bin_path = "/usr/lib/google-golang/bin/go "
|
|
||||||
"let $GOPATH = $HOME."/go"
|
|
||||||
|
|
||||||
" --------- GOLANG MAPPINGS ---------
|
|
||||||
nmap <leader>d :GoDef<cr>
|
|
||||||
nmap <leader>b :GoBuild<cr>
|
|
||||||
nmap <leader>tf :GoTestFunc<cr>
|
|
||||||
nmap <leader>fs :GoFillStruct<cr>
|
|
||||||
nmap <leader>at :GoAddTags<cr>
|
|
||||||
nmap <leader>ie :GoIfErr<cr>
|
|
||||||
|
|
||||||
nmap <leader>ga :GoAlternate<cr>
|
|
||||||
nmap <leader>gat :GoAddTags<cr>
|
|
||||||
nmap <leader>grt :GoRemoveTags<cr>
|
|
||||||
nmap <leader>gc :GoCoverageToggle<cr>
|
|
||||||
nmap <leader>gd :GoDef<cr>
|
|
||||||
nmap <leader>gfs :GoFillStruct<cr>
|
|
||||||
nmap <leader>gl :GoMetaLinter<cr>
|
|
||||||
nmap <leader>gr :GoRun<cr>
|
|
||||||
nmap <leader>gt :GoTest<cr>
|
|
||||||
nmap <leader>gtf :GoTestFunc<cr>
|
|
||||||
nmap <leader>gv :GoVet<cr>
|
|
||||||
|
|
||||||
autocmd FileType go nmap gtj :CocCommand go.tags.add json<cr>
|
|
||||||
autocmd FileType go nmap gty :CocCommand go.tags.add yaml<cr>
|
|
||||||
autocmd FileType go nmap gtx :CocCommand go.tags.clear<cr>
|
|
||||||
|
|
||||||
"nmap <leader>gd <Plug>(coc-definition)
|
|
||||||
"nmap <leader>gy <Plug>(coc-type-definition)
|
|
||||||
"nmap <leader>gi <Plug>(coc-implementation)
|
|
||||||
"nmap <leader>gr <Plug>(coc-references)
|
|
@ -31,10 +31,6 @@ imap <leader>v <ESC>"+pa
|
|||||||
" Copy to OS clipboard
|
" Copy to OS clipboard
|
||||||
vnoremap <leader>y "yy <Bar> :call system('xclip', @y)<CR>
|
vnoremap <leader>y "yy <Bar> :call system('xclip', @y)<CR>
|
||||||
map <leader>y "yy <Bar> :call system('xclip', @y)<CR>
|
map <leader>y "yy <Bar> :call system('xclip', @y)<CR>
|
||||||
" map <leader>y !xclip -selection clipboard
|
|
||||||
" vmap <leader>y !xclip -selection clipboard<cr>
|
|
||||||
" map <leader>y "+Y
|
|
||||||
" vmap <leader>y "+y
|
|
||||||
|
|
||||||
" --------- WINDOW/PANE MAPPINGS ---------
|
" --------- WINDOW/PANE MAPPINGS ---------
|
||||||
map <leader>wr <C-W>r
|
map <leader>wr <C-W>r
|
||||||
|
Reference in New Issue
Block a user