added java LS support (finally!)
This commit is contained in:
		
							parent
							
								
									0041ccc4f8
								
							
						
					
					
						commit
						85be35d962
					
				
					 2 changed files with 84 additions and 2 deletions
				
			
		
							
								
								
									
										82
									
								
								neovim/.config/nvim/ftplugin/java.lua
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								neovim/.config/nvim/ftplugin/java.lua
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
local opts = {
 | 
			
		||||
	cmd = {},
 | 
			
		||||
	settings = {
 | 
			
		||||
		java = {
 | 
			
		||||
			signatureHelp = { enabled = true },
 | 
			
		||||
			completion = {
 | 
			
		||||
				favoriteStaticMembers = {},
 | 
			
		||||
				filteredTypes = {
 | 
			
		||||
					-- "com.sun.*",
 | 
			
		||||
					-- "io.micrometer.shaded.*",
 | 
			
		||||
					-- "java.awt.*",
 | 
			
		||||
					-- "jdk.*",
 | 
			
		||||
					-- "sun.*",
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			sources = {
 | 
			
		||||
				organizeImports = {
 | 
			
		||||
					starThreshold = 9999,
 | 
			
		||||
					staticStarThreshold = 9999,
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
			codeGeneration = {
 | 
			
		||||
				toString = {
 | 
			
		||||
					template = "${object.className}{${member.name()}=${member.value}, ${otherMembers}}",
 | 
			
		||||
				},
 | 
			
		||||
				useBlocks = true,
 | 
			
		||||
			},
 | 
			
		||||
			configuration = {
 | 
			
		||||
				runtimes = {
 | 
			
		||||
					{
 | 
			
		||||
						name = "JavaSE-1.8",
 | 
			
		||||
						path = "/Library/Java/JavaVirtualMachines/amazon-corretto-8.jdk/Contents/Home",
 | 
			
		||||
						default = true,
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						name = "JavaSE-17",
 | 
			
		||||
						path = "/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home",
 | 
			
		||||
					},
 | 
			
		||||
					{
 | 
			
		||||
						name = "JavaSE-19",
 | 
			
		||||
						path = "/Library/Java/JavaVirtualMachines/jdk-19.jdk/Contents/Home",
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
local jdtls_config = opts
 | 
			
		||||
local pkg_status, jdtls = pcall(require,"jdtls")
 | 
			
		||||
if not pkg_status then
 | 
			
		||||
	vim.notify("unable to load nvim-jdtls", "error")
 | 
			
		||||
	return {}
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- local jdtls_path = vim.fn.stdpath("data") .. "/mason/packages/jdtls"
 | 
			
		||||
local jdtls_bin = vim.fn.stdpath("data") .. "/mason/bin/jdtls"
 | 
			
		||||
 | 
			
		||||
local root_markers = { ".gradle", "gradlew", ".git" }
 | 
			
		||||
local root_dir = jdtls.setup.find_root(root_markers)
 | 
			
		||||
local home = os.getenv("HOME")
 | 
			
		||||
local project_name = vim.fn.fnamemodify(root_dir, ":p:h:t")
 | 
			
		||||
local workspace_dir = home .. "/.cache/jdtls/workspace/" .. project_name
 | 
			
		||||
 | 
			
		||||
opts.cmd = {
 | 
			
		||||
	jdtls_bin,
 | 
			
		||||
	"-data",
 | 
			
		||||
	workspace_dir,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
local on_attach = function(client, bufnr)
 | 
			
		||||
	jdtls.setup.add_commands() -- important to ensure you can update configs when build is updated
 | 
			
		||||
	-- if you setup DAP according to https://github.com/mfussenegger/nvim-jdtls#nvim-dap-configuration you can uncomment below
 | 
			
		||||
	-- jdtls.setup_dap({ hotcodereplace = "auto" })
 | 
			
		||||
	-- jdtls.dap.setup_dap_main_class_configs()
 | 
			
		||||
 | 
			
		||||
	-- you may want to also run your generic on_attach() function used by your LSP config
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
opts.on_attach = on_attach
 | 
			
		||||
opts.capabilities = vim.lsp.protocol.make_client_capabilities()
 | 
			
		||||
jdtls.start_or_attach(jdtls_config)
 | 
			
		||||
| 
						 | 
				
			
			@ -62,8 +62,8 @@ return require('packer').startup(function(use)
 | 
			
		|||
				require('LSPconfig')
 | 
			
		||||
			end
 | 
			
		||||
		},
 | 
			
		||||
		{'simrat39/rust-tools.nvim',
 | 
			
		||||
		}
 | 
			
		||||
		{'simrat39/rust-tools.nvim',},
 | 
			
		||||
		{'mfussenegger/nvim-jdtls',},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	use {'hrsh7th/nvim-cmp',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue