From 5056d31b0bf7906a4cb9e62ed839b7cb0e60417d Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Thu, 11 Jul 2024 01:04:22 +0530 Subject: [PATCH 1/5] chore: fix types --- lua/java-core/ls/clients/jdtls-client.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/java-core/ls/clients/jdtls-client.lua b/lua/java-core/ls/clients/jdtls-client.lua index 1ec82bd..2c28211 100644 --- a/lua/java-core/ls/clients/jdtls-client.lua +++ b/lua/java-core/ls/clients/jdtls-client.lua @@ -22,7 +22,7 @@ local await = async.wait_handle_error ---| 'convertVariableToField' ---| 'invertVariable' ---| 'introduceParameter' ----| 'convertAnonymousClassToNestedCommand') { +---| 'convertAnonymousClassToNestedCommand' ---@class jdtls.RefactorWorkspaceEdit ---@field edit lsp.WorkspaceEdit @@ -88,7 +88,7 @@ function JdtlsClient:workspace_execute_command(command, params, buffer) end ---Returns more information about the object the cursor is on ----@param command java-core.JdtlsRequestMethod +---@param command jdtls.CodeActionCommand ---@param params lsp.CodeActionParams ---@param buffer? number ---@return jdtls.SelectionInfo[] From 0dbdc2ddece3d7d3d4acf6d0537921aa789ff0b6 Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Thu, 11 Jul 2024 22:23:02 +0530 Subject: [PATCH 2/5] chore: fix types of code action requests --- lua/java-core/ls/clients/jdtls-client.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/java-core/ls/clients/jdtls-client.lua b/lua/java-core/ls/clients/jdtls-client.lua index 2c28211..622ebe0 100644 --- a/lua/java-core/ls/clients/jdtls-client.lua +++ b/lua/java-core/ls/clients/jdtls-client.lua @@ -89,19 +89,19 @@ end ---Returns more information about the object the cursor is on ---@param command jdtls.CodeActionCommand ----@param params lsp.CodeActionParams +---@param context lsp.CodeActionContext ---@param buffer? number ---@return jdtls.SelectionInfo[] -function JdtlsClient:java_infer_selection(command, params, buffer) +function JdtlsClient:java_infer_selection(command, context, buffer) return self:request('java/inferSelection', { command = command, - context = params, + context = context, }, buffer) end ---Returns refactor details ---@param command jdtls.CodeActionCommand ----@param context lsp.CodeActionParams +---@param context lsp.CodeActionContext ---@param options lsp.FormattingOptions ---@param command_arguments jdtls.SelectionInfo[]; ---@param buffer? number From 633bcbb3a4e2fa8da9b2104486deabf4f2f4930d Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Sat, 13 Jul 2024 14:51:45 +0530 Subject: [PATCH 3/5] chore: fix types and rename req parameters --- lua/java-core/ls/clients/jdtls-client.lua | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lua/java-core/ls/clients/jdtls-client.lua b/lua/java-core/ls/clients/jdtls-client.lua index 622ebe0..3adc1d6 100644 --- a/lua/java-core/ls/clients/jdtls-client.lua +++ b/lua/java-core/ls/clients/jdtls-client.lua @@ -89,35 +89,35 @@ end ---Returns more information about the object the cursor is on ---@param command jdtls.CodeActionCommand ----@param context lsp.CodeActionContext +---@param params lsp.CodeActionParams ---@param buffer? number ---@return jdtls.SelectionInfo[] -function JdtlsClient:java_infer_selection(command, context, buffer) +function JdtlsClient:java_infer_selection(command, params, buffer) return self:request('java/inferSelection', { command = command, - context = context, + context = params, }, buffer) end ---Returns refactor details ---@param command jdtls.CodeActionCommand ----@param context lsp.CodeActionContext ----@param options lsp.FormattingOptions ----@param command_arguments jdtls.SelectionInfo[]; +---@param action_params lsp.CodeActionParams +---@param formatting_options lsp.FormattingOptions +---@param selection_info jdtls.SelectionInfo[]; ---@param buffer? number ---@return jdtls.RefactorWorkspaceEdit function JdtlsClient:java_get_refactor_edit( command, - context, - options, - command_arguments, + action_params, + formatting_options, + selection_info, buffer ) local params = { command = command, - context = context, - options = options, - commandArguments = command_arguments, + context = action_params, + options = formatting_options, + commandArguments = selection_info, } return self:request('java/getRefactorEdit', params, buffer) From 0305c972167fd1bdc2ffa43bfcc2d319732b1dd0 Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Sun, 14 Jul 2024 01:19:42 +0530 Subject: [PATCH 4/5] feat: add constructor requests --- lua/java-core/ls/clients/jdtls-client.lua | 37 ++++++++++++++++++++++- lua/java-core/ls/servers/jdtls/init.lua | 5 +-- lua/java-core/types/nvim-types.lua | 13 ++++---- lua/java-core/utils/list.lua | 21 +++++++++++-- 4 files changed, 63 insertions(+), 13 deletions(-) diff --git a/lua/java-core/ls/clients/jdtls-client.lua b/lua/java-core/ls/clients/jdtls-client.lua index 3adc1d6..407addc 100644 --- a/lua/java-core/ls/clients/jdtls-client.lua +++ b/lua/java-core/ls/clients/jdtls-client.lua @@ -8,6 +8,8 @@ local await = async.wait_handle_error ---| 'java/inferSelection' ---| 'java/getRefactorEdit' ---| 'java/buildWorkspace' +---| 'java/checkConstructorsStatus' +---| 'java/generateConstructors' ---@alias jdtls.CodeActionCommand ---| 'extractVariable' @@ -45,7 +47,7 @@ end ---Sends a LSP request ---@param method java-core.JdtlsRequestMethod ----@param params lsp.ExecuteCommandParams +---@param params lsp.LSPAny ---@param buffer? number function JdtlsClient:request(method, params, buffer) log.debug('sending LSP request: ' .. method) @@ -99,6 +101,39 @@ function JdtlsClient:java_infer_selection(command, params, buffer) }, buffer) end +--- @class jdtls.VariableBinding +--- @field bindingKey string +--- @field name string +--- @field type string +--- @field isField boolean +--- @field isSelected? boolean + +---@class jdtls.MethodBinding +---@field bindingKey string; +---@field name string; +---@field parameters string[]; + +---@class jdtls.JavaCheckConstructorsStatusResponse +---@field constructors jdtls.MethodBinding +---@field fields jdtls.MethodBinding + +---@param params lsp.CodeActionParams +---@return jdtls.JavaCheckConstructorsStatusResponse +function JdtlsClient:java_check_constructors_status(params) + return self:request('java/checkConstructorsStatus', params) +end + +---@class jdtls.GenerateConstructorsParams +---@field context lsp.CodeActionParams +---@field constructors jdtls.MethodBinding[] +---@field fields jdtls.VariableBinding[] + +---@param params jdtls.GenerateConstructorsParams +---@return lsp.WorkspaceEdit +function JdtlsClient:java_generate_constructor(params) + return self:request('java/generateConstructors', params) +end + ---Returns refactor details ---@param command jdtls.CodeActionCommand ---@param action_params lsp.CodeActionParams diff --git a/lua/java-core/ls/servers/jdtls/init.lua b/lua/java-core/ls/servers/jdtls/init.lua index b0f66d4..c864e9c 100644 --- a/lua/java-core/ls/servers/jdtls/init.lua +++ b/lua/java-core/ls/servers/jdtls/init.lua @@ -18,7 +18,7 @@ local M = {} ---Returns a configuration for jdtls that you can pass into the setup of nvim-lspconfig ---@param opts JavaCoreGetConfigOptions ----@return LspSetupConfig # jdtls setup configuration +---@return vim.lsp.ClientConfig function M.get_config(opts) log.debug('generating jdtls config') @@ -80,6 +80,7 @@ function M.get_config(opts) end end + ---@diagnostic disable-next-line: assign-type-mismatch base_config.root_dir = M.get_root_finder(opts.root_markers) base_config.init_options.bundles = plugin_paths base_config.init_options.workspace = utils.get_workspace_path() @@ -92,7 +93,7 @@ end ---Returns a function that finds the java project root ---@private ---@param root_markers string[] list of files to find the root dir of a project ----@return fun(file_name: string): string | nil +---@return fun(file_name: string): string function M.get_root_finder(root_markers) return function(file_name) log.debug('finding the root_dir with root_markers ', root_markers) diff --git a/lua/java-core/types/nvim-types.lua b/lua/java-core/types/nvim-types.lua index 7db6a4a..d16632b 100644 --- a/lua/java-core/types/nvim-types.lua +++ b/lua/java-core/types/nvim-types.lua @@ -1,7 +1,6 @@ ----@class nvim.Range ----@field end nvim.CursorPoint ----@field start nvim.CursorPoint - ----@class nvim.CursorPoint ----@field line integer ----@field character integer +---@class nvim.CodeActionParamsResponse +---@field bufnr number +---@field client_id number +---@field method string +---@field params lsp.CodeActionParams +---@field version number diff --git a/lua/java-core/utils/list.lua b/lua/java-core/utils/list.lua index 529225b..bdc9807 100644 --- a/lua/java-core/utils/list.lua +++ b/lua/java-core/utils/list.lua @@ -31,13 +31,13 @@ function M:find(finder) end ---Returns a list of mapped values ----@param mapper fun(value: any): any +---@param mapper fun(value: any, index: number): any ---@return java-core.List function M:map(mapper) local mapped = M:new() - for _, v in ipairs(self) do - mapped:push(mapper(v)) + for i, v in ipairs(self) do + mapped:push(mapper(v, i)) end return mapped @@ -112,4 +112,19 @@ function M:every(validator) return true end +---Returns a filtered list +---@param filter fun(value: any, index: integer): boolean +---@return java-core.List +function M:filter(filter) + local new_list = M:new() + + self:for_each(function(value, index) + if filter(value, index) then + new_list:push(value) + end + end) + + return new_list +end + return M From eb5a7da7ce38d942ff65f059ed7912ccb66bd852 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 14 Jul 2024 01:20:46 +0530 Subject: [PATCH 5/5] chore(main): release 1.6.0 (#78) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97803ae..c87fbc2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.6.0](https://github.com/nvim-java/nvim-java-core/compare/v1.5.0...v1.6.0) (2024-07-13) + + +### Features + +* add constructor requests ([0305c97](https://github.com/nvim-java/nvim-java-core/commit/0305c972167fd1bdc2ffa43bfcc2d319732b1dd0)) + ## [1.5.0](https://github.com/nvim-java/nvim-java-core/compare/v1.4.0...v1.5.0) (2024-07-10)