You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
nvim-setup/init.vim

88 lines
2.7 KiB

set tgc
color darcula
set ff=unix ffs=unix,dos
set sw=4 ts=4 noet tw=80 cc=80
set spr sb
set pb=12 winbl=12
set fcs=eob:\ list lcs=tab:\│\ ,trail:⎵
" on windows, prevents hanging! on unix, get rid of this.
" nmap <C-z> <Nop>
let g:mapleader = " "
set mouse=a
function s:InitLSP()
lua <<EOF
local cmp = require "cmp"
local cmp_lsp = require "cmp_nvim_lsp"
local lspconfig = require "lspconfig"
cmp.setup {
sources = {
{name = "nvim_lsp"}
},
mapping = cmp.mapping.preset.insert()
}
local caps = vim.lsp.protocol.make_client_capabilities()
caps = cmp_lsp.update_capabilities(caps)
local opts = {noremap = true, silent = true}
local function nn(from, to) vim.api.nvim_set_keymap("n", from, to, opts) end
nn("<Leader>e", "<cmd>lua vim.diagnostic.open_float()<CR>")
nn("<Leader>p", "<cmd>lua vim.diagnostic.goto_prev()<CR>")
nn("<Leader>n", "<cmd>lua vim.diagnostic.goto_next()<CR>")
local function onattach(client, buf)
local function nn(from, to)
vim.api.nvim_buf_set_keymap(buf, "n", from, to, opts)
end
nn("gD", "<cmd>lua vim.lsp.buf.declaration()<CR>")
nn("gd", "<cmd>lua vim.lsp.buf.definition()<CR>")
nn("<Leader>K", "<cmd>lua vim.lsp.buf.hover()<CR>")
nn("gi", "<cmd>lua vim.lsp.buf.implementation()<CR>")
nn("<C-k>", "<cmd>lua vim.lsp.buf.signature_help()<CR>")
nn("<Leader>D", "<cmd>lua vim.lsp.buf.type_definition()<CR>")
nn("<Leader>r", "<cmd>lua vim.lsp.buf.rename()<CR>")
nn("<Leader>A", "<cmd>lua vim.lsp.buf.code_action()<CR>")
nn("<Leader>R", "<cmd>lua vim.lsp.buf.references()<CR>")
nn("<Leader>f", "<cmd>lua vim.lsp.buf.formatting()<CR>")
end
local servers = {"clangd"} -- add others here if you use them!
for _, lsp in pairs(servers) do
lspconfig[lsp].setup {
capabilities = caps,
on_attach = onattach,
flags = {debounce_text_changes = 500}
}
end
local config = {
cmd = {
'java',
'-Declipse.application=org.eclipse.jdt.ls.core.id1',
'-Dosgi.bundles.defaultStartLevel=4',
'-Declipse.product=org.eclipse.jdt.ls.core.product',
'-Dlog.protocol=true',
'-Dlog.level=ALL',
'-Xms1g',
'--add-modules=ALL-SYSTEM',
'--add-opens', 'java.base/java.util=ALL-UNNAMED',
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
'-jar', '/home/fabiclawz/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar',
'-configuration', '/home/fabiclawz/jdtls/config_linux',
'-data', '/home/fabiclawz/jdtls/data'
},
root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}),
settings = {
java = {
}
},
init_options = {
bundles = {}
},
}
require('jdtls').start_or_attach(config)
EOF
endfunction
au VimEnter * call s:InitLSP()