mirror of
https://github.com/Baipyrus/nvim-config.git
synced 2024-12-27 05:41:45 +00:00
Compare commits
No commits in common. "c3569c1b5137efbe7871e76fa271d533e1e2765b" and "6e9877e9592ea3fd224beddb612e0489bbb0b83e" have entirely different histories.
c3569c1b51
...
6e9877e959
@ -29,9 +29,6 @@ return {
|
|||||||
|
|
||||||
-- Allows extra capabilities provided by nvim-cmp
|
-- Allows extra capabilities provided by nvim-cmp
|
||||||
'hrsh7th/cmp-nvim-lsp',
|
'hrsh7th/cmp-nvim-lsp',
|
||||||
|
|
||||||
-- Needed to explore Workspace in Java
|
|
||||||
'stevearc/oil.nvim',
|
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
-- Brief aside: **What is LSP?**
|
-- Brief aside: **What is LSP?**
|
||||||
@ -227,6 +224,54 @@ return {
|
|||||||
-- set default config according to sysname
|
-- set default config according to sysname
|
||||||
local config_path = install_path .. '/config_' .. sysname
|
local config_path = install_path .. '/config_' .. sysname
|
||||||
|
|
||||||
|
-- START SEARCH FOR PROCESSING --
|
||||||
|
-- detect install path based on system
|
||||||
|
local is_windows = vim.fn.has 'win32' == 1
|
||||||
|
local cmds = is_windows and {
|
||||||
|
'(gcm processing.exe).source',
|
||||||
|
} or {
|
||||||
|
'whereis',
|
||||||
|
'processing.exe',
|
||||||
|
}
|
||||||
|
|
||||||
|
-- run syscall and process output
|
||||||
|
local output = vim.system(cmds, { text = true }):wait()
|
||||||
|
local path = output.stdout or ''
|
||||||
|
if not is_windows then
|
||||||
|
-- on linux, get substr starting with path
|
||||||
|
local start_idx = string.find(path, '/')
|
||||||
|
path = (start_idx ~= nil) and string.sub(path, start_idx) or ''
|
||||||
|
end
|
||||||
|
|
||||||
|
-- for windows, remove backslashes
|
||||||
|
path = string.gsub(path, '\\', '/')
|
||||||
|
-- remove filename at end of path
|
||||||
|
local end_idx = string.find(path, '/[^/]*$')
|
||||||
|
path = string.sub(path, 1, end_idx)
|
||||||
|
|
||||||
|
-- in case of chocolatey install, navigate to binaries
|
||||||
|
local is_chocolatey = string.find(path, 'chocolatey')
|
||||||
|
if is_chocolatey then
|
||||||
|
path = path .. '../lib/processing/tools/'
|
||||||
|
-- list directories for program version
|
||||||
|
cmds = is_windows and {
|
||||||
|
'ls',
|
||||||
|
path,
|
||||||
|
'|select name',
|
||||||
|
'|Out-String',
|
||||||
|
} or {
|
||||||
|
'ls',
|
||||||
|
'-l',
|
||||||
|
path,
|
||||||
|
}
|
||||||
|
|
||||||
|
output = vim.system(cmds, { text = true }):wait()
|
||||||
|
local version = string.match(output.stdout, 'processing[^%s]*')
|
||||||
|
path = path .. version
|
||||||
|
end
|
||||||
|
-- set path to processing-core library
|
||||||
|
path = path .. '/core/library/core.jar'
|
||||||
|
|
||||||
-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
|
-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
|
||||||
local config = {
|
local config = {
|
||||||
-- The command that starts the language server
|
-- The command that starts the language server
|
||||||
@ -263,7 +308,13 @@ return {
|
|||||||
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
||||||
-- for a list of options
|
-- for a list of options
|
||||||
settings = {
|
settings = {
|
||||||
java = {},
|
java = {
|
||||||
|
project = {
|
||||||
|
referencedLibraries = {
|
||||||
|
is_windows and string.gsub(path, '/', '\\') or path,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Language server `initializationOptions`
|
-- Language server `initializationOptions`
|
||||||
@ -276,15 +327,11 @@ return {
|
|||||||
end
|
end
|
||||||
vim.api.nvim_create_autocmd('FileType', {
|
vim.api.nvim_create_autocmd('FileType', {
|
||||||
pattern = 'java',
|
pattern = 'java',
|
||||||
callback = function(opt)
|
callback = function()
|
||||||
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
|
local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
|
||||||
-- calculate workspace dir
|
-- calculate workspace dir
|
||||||
local workspace_dir = vim.fn.stdpath 'data' .. '/site/java/workspace-root/' .. project_name
|
local workspace_dir = vim.fn.stdpath 'data' .. '/site/java/workspace-root/' .. project_name
|
||||||
require('jdtls').start_or_attach(generate_config(workspace_dir))
|
require('jdtls').start_or_attach(generate_config(workspace_dir))
|
||||||
vim.keymap.set('n', '<leader>we', '<cmd>Oil ' .. workspace_dir .. '<cr>', {
|
|
||||||
desc = '[W]orkspace [E]xplorer',
|
|
||||||
buffer = opt.buf,
|
|
||||||
})
|
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user