diff options
-rw-r--r-- | init.lua | 4 | ||||
-rw-r--r-- | lua/lsp/java-ls.lua | 15 | ||||
-rw-r--r-- | lua/lsp/json-ls.lua | 10 | ||||
-rw-r--r-- | lua/lsp/python-ls.lua | 2 | ||||
-rw-r--r-- | lua/lsp/yaml-ls.lua | 2 | ||||
-rw-r--r-- | lua/nv-vscode/init.vim | 4 | ||||
-rw-r--r-- | lua/utils.lua | 1 | ||||
-rwxr-xr-x | utils/bin/java-linux-ls | 28 |
8 files changed, 66 insertions, 0 deletions
@@ -38,4 +38,8 @@ else require('lsp.lua-ls') require('lsp.bash-ls') require('lsp.js-ts-ls') + -- require('lsp.java-ls') + require('lsp.python-ls') + require('lsp.json-ls') + require('lsp.yaml-ls') end diff --git a/lua/lsp/java-ls.lua b/lua/lsp/java-ls.lua new file mode 100644 index 00000000..72ce5104 --- /dev/null +++ b/lua/lsp/java-ls.lua @@ -0,0 +1,15 @@ +-- In Vimscript +-- augroup lsp +-- au! +-- au FileType java lua require('jdtls').start_or_attach({cmd = {'java-linux-ls'}}) +-- augroup end +-- find_root looks for parent directories relative to the current buffer containing one of the given arguments. +-- require'lspconfig'.jdtls.setup {cmd = {'java-linux-ls'}} +if vim.fn.has("mac") == 1 then + JAVA_LS_EXECUTABLE = 'java-mac-ls' +elseif vim.fn.has("unix") == 1 then + JAVA_LS_EXECUTABLE = 'java-linux-ls' +else + print("Unsupported system") +end +require('jdtls').start_or_attach({cmd = {JAVA_LS_EXECUTABLE}, root_dir = require('jdtls.setup').find_root({'gradle.build', 'pom.xml'})}) diff --git a/lua/lsp/json-ls.lua b/lua/lsp/json-ls.lua new file mode 100644 index 00000000..d13fed3f --- /dev/null +++ b/lua/lsp/json-ls.lua @@ -0,0 +1,10 @@ +-- npm install -g vscode-json-languageserver +require'lspconfig'.jsonls.setup { + commands = { + Format = { + function() + vim.lsp.buf.range_formatting({},{0,0},{vim.fn.line("$"),0}) + end + } + } +} diff --git a/lua/lsp/python-ls.lua b/lua/lsp/python-ls.lua new file mode 100644 index 00000000..11eeef91 --- /dev/null +++ b/lua/lsp/python-ls.lua @@ -0,0 +1,2 @@ +-- npm i -g pyright +require'lspconfig'.pyright.setup{} diff --git a/lua/lsp/yaml-ls.lua b/lua/lsp/yaml-ls.lua new file mode 100644 index 00000000..904f20ea --- /dev/null +++ b/lua/lsp/yaml-ls.lua @@ -0,0 +1,2 @@ +-- npm install -g yaml-language-server +require'lspconfig'.yamlls.setup{} diff --git a/lua/nv-vscode/init.vim b/lua/nv-vscode/init.vim index 9ca19a3b..746d189d 100644 --- a/lua/nv-vscode/init.vim +++ b/lua/nv-vscode/init.vim @@ -103,3 +103,7 @@ xmap gc <Plug>VSCodeCommentary nmap gc <Plug>VSCodeCommentary omap gc <Plug>VSCodeCommentary nmap gcc <Plug>VSCodeCommentaryLine + +" Simulate same TAB behavior in VSCode + nmap <Tab> :Tabnext<CR> + nmap <S-Tab> :Tabprev<CR> diff --git a/lua/utils.lua b/lua/utils.lua index 277ca728..22fe415a 100644 --- a/lua/utils.lua +++ b/lua/utils.lua @@ -26,6 +26,7 @@ define_augroups( {'BufWinEnter', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'}, {'BufRead', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'}, {'BufNewFile', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'}, + {'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'}, }, } ) diff --git a/utils/bin/java-linux-ls b/utils/bin/java-linux-ls new file mode 100755 index 00000000..3c76662e --- /dev/null +++ b/utils/bin/java-linux-ls @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# NOTE: +# This doesn't work as is on Windows. You'll need to create an equivalent `.bat` file instead +# +# NOTE: +# If you're not using Linux you'll need to adjust the `-configuration` option +# to point to the `config_mac' or `config_win` folders depending on your system. + +JAR="$HOME/.config/nvim/ls/eclipse.jdt.ls/org.eclipse.jdt.ls.product/target/repository/plugins/org.eclipse.equinox.launcher_*.jar" +GRADLE_HOME=$HOME/gradle $HOME/.sdkman/candidates/java/current/bin/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 \ + -javaagent:/usr/local/share/lombok/lombok.jar \ + -Xms1g \ + -Xmx2G \ + -jar $(echo "$JAR") \ + -configuration "$HOME/.config/nvim/ls/eclipse.jdt.ls/org.eclipse.jdt.ls.product/target/repository/config_linux" \ + -data "${1:-$HOME/workspace}" \ + --add-modules=ALL-SYSTEM \ + --add-opens java.base/java.util=ALL-UNNAMED \ + --add-opens java.base/java.lang=ALL-UNNAMED + + # for older java versions if you wanna use lombok + # -Xbootclasspath/a:/usr/local/share/lombok/lombok.jar \ |