Skip to content

Commit a889ff4

Browse files
committed
feat: add warning on not yet implemented client commands
1 parent 8ab396a commit a889ff4

1 file changed

Lines changed: 98 additions & 153 deletions

File tree

lua/java/commands/init.lua

Lines changed: 98 additions & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
local log = require('java.utils.log')
2+
local notify = require('java-core.utils.notify')
23

34
local M = {}
45

@@ -23,174 +24,94 @@ id = vim.api.nvim_create_autocmd('LspAttach', {
2324
})
2425

2526
M.commands = {
26-
27-
OPEN_BROWSER = 'vscode.open',
28-
29-
OPEN_OUTPUT = 'java.open.output',
30-
31-
SHOW_JAVA_REFERENCES = 'java.show.references',
32-
33-
SHOW_JAVA_IMPLEMENTATIONS = 'java.show.implementations',
34-
35-
SHOW_REFERENCES = 'editor.action.showReferences',
36-
37-
GOTO_LOCATION = 'editor.action.goToLocations',
38-
39-
MARKDOWN_API_RENDER = 'markdown.api.render',
40-
41-
CONFIGURATION_UPDATE = 'java.projectConfiguration.update',
42-
43-
IGNORE_INCOMPLETE_CLASSPATH = 'java.ignoreIncompleteClasspath',
44-
45-
IGNORE_INCOMPLETE_CLASSPATH_HELP = 'java.ignoreIncompleteClasspath.help',
46-
47-
RELOAD_WINDOW = 'workbench.action.reloadWindow',
48-
49-
PROJECT_CONFIGURATION_STATUS = 'java.projectConfiguration.status',
50-
51-
NULL_ANALYSIS_SET_MODE = 'java.compile.nullAnalysis.setMode',
52-
27+
ADD_TO_SOURCEPATH = 'java.project.addToSourcePath',
28+
ADD_TO_SOURCEPATH_CMD = 'java.project.addToSourcePath.command',
29+
APPLY_REFACTORING_COMMAND = 'java.action.applyRefactoringCommand',
5330
APPLY_WORKSPACE_EDIT = 'java.apply.workspaceEdit',
54-
55-
EXECUTE_WORKSPACE_COMMAND = 'java.execute.workspaceCommand',
56-
57-
COMPILE_WORKSPACE = 'java.workspace.compile',
58-
5931
BUILD_PROJECT = 'java.project.build',
60-
61-
OPEN_SERVER_LOG = 'java.open.serverLog',
62-
63-
OPEN_SERVER_STDOUT_LOG = 'java.open.serverStdoutLog',
64-
65-
OPEN_SERVER_STDERR_LOG = 'java.open.serverStderrLog',
66-
67-
OPEN_CLIENT_LOG = 'java.open.clientLog',
68-
69-
OPEN_LOGS = 'java.open.logs',
70-
71-
OPEN_FORMATTER = 'java.open.formatter.settings',
72-
73-
OPEN_FILE = 'java.open.file',
74-
75-
CLEAN_WORKSPACE = 'java.clean.workspace',
76-
77-
UPDATE_SOURCE_ATTACHMENT_CMD = 'java.project.updateSourceAttachment.command',
78-
UPDATE_SOURCE_ATTACHMENT = 'java.project.updateSourceAttachment',
79-
80-
RESOLVE_SOURCE_ATTACHMENT = 'java.project.resolveSourceAttachment',
81-
82-
ADD_TO_SOURCEPATH_CMD = 'java.project.addToSourcePath.command',
83-
ADD_TO_SOURCEPATH = 'java.project.addToSourcePath',
84-
85-
REMOVE_FROM_SOURCEPATH_CMD = 'java.project.removeFromSourcePath.command',
86-
REMOVE_FROM_SOURCEPATH = 'java.project.removeFromSourcePath',
87-
88-
LIST_SOURCEPATHS_CMD = 'java.project.listSourcePaths.command',
89-
LIST_SOURCEPATHS = 'java.project.listSourcePaths',
90-
91-
IMPORT_PROJECTS_CMD = 'java.project.import.command',
92-
IMPORT_PROJECTS = 'java.project.import',
32+
CHANGE_BASE_TYPE = 'java.action.changeBaseType',
9333
CHANGE_IMPORTED_PROJECTS = 'java.project.changeImportedProjects',
94-
95-
OVERRIDE_METHODS_PROMPT = 'java.action.overrideMethodsPrompt',
96-
97-
HASHCODE_EQUALS_PROMPT = 'java.action.hashCodeEqualsPrompt',
98-
99-
OPEN_JSON_SETTINGS = 'workbench.action.openSettingsJson',
100-
101-
ORGANIZE_IMPORTS = 'java.action.organizeImports',
102-
103-
ORGANIZE_IMPORTS_SILENTLY = 'java.edit.organizeImports',
104-
MANUAL_CLEANUP = 'java.action.doCleanup',
105-
106-
HANDLE_PASTE_EVENT = 'java.edit.handlePasteEvent',
107-
34+
CHOOSE_IMPORTS = 'java.action.organizeImports.chooseImports',
35+
CLEAN_SHARED_INDEXES = 'java.clean.sharedIndexes',
36+
CLEAN_WORKSPACE = 'java.clean.workspace',
10837
CLIPBOARD_ONPASTE = 'java.action.clipboardPasteAction',
109-
38+
COMPILE_WORKSPACE = 'java.workspace.compile',
39+
CONFIGURATION_UPDATE = 'java.projectConfiguration.update',
40+
CREATE_MODULE_INFO = 'java.project.createModuleInfo',
41+
CREATE_MODULE_INFO_COMMAND = 'java.project.createModuleInfo.command',
42+
EXECUTE_WORKSPACE_COMMAND = 'java.execute.workspaceCommand',
11043
FILESEXPLORER_ONPASTE = 'java.action.filesExplorerPasteAction',
111-
112-
CHOOSE_IMPORTS = 'java.action.organizeImports.chooseImports',
113-
114-
GENERATE_TOSTRING_PROMPT = 'java.action.generateToStringPrompt',
115-
11644
GENERATE_ACCESSORS_PROMPT = 'java.action.generateAccessorsPrompt',
117-
11845
GENERATE_CONSTRUCTORS_PROMPT = 'java.action.generateConstructorsPrompt',
119-
12046
GENERATE_DELEGATE_METHODS_PROMPT = 'java.action.generateDelegateMethodsPrompt',
121-
122-
APPLY_REFACTORING_COMMAND = 'java.action.applyRefactoringCommand',
123-
124-
RENAME_COMMAND = 'java.action.rename',
125-
126-
NAVIGATE_TO_SUPER_IMPLEMENTATION_COMMAND = 'java.action.navigateToSuperImplementation',
127-
128-
SHOW_TYPE_HIERARCHY = 'java.action.showTypeHierarchy',
129-
130-
SHOW_SUPERTYPE_HIERARCHY = 'java.action.showSupertypeHierarchy',
131-
132-
SHOW_SUBTYPE_HIERARCHY = 'java.action.showSubtypeHierarchy',
133-
134-
SHOW_CLASS_HIERARCHY = 'java.action.showClassHierarchy',
135-
136-
CHANGE_BASE_TYPE = 'java.action.changeBaseType',
137-
138-
OPEN_TYPE_HIERARCHY = 'java.navigate.openTypeHierarchy',
139-
140-
RESOLVE_TYPE_HIERARCHY = 'java.navigate.resolveTypeHierarchy',
141-
142-
SHOW_SERVER_TASK_STATUS = 'java.show.server.task.status',
143-
144-
GET_PROJECT_SETTINGS = 'java.project.getSettings',
145-
47+
GENERATE_TOSTRING_PROMPT = 'java.action.generateToStringPrompt',
48+
GET_ALL_JAVA_PROJECTS = 'java.project.getAll',
14649
GET_CLASSPATHS = 'java.project.getClasspaths',
147-
50+
GET_DECOMPILED_SOURCE = 'java.decompile',
51+
GET_PROJECT_SETTINGS = 'java.project.getSettings',
52+
GET_WORKSPACE_PATH = '_java.workspace.path',
53+
GOTO_LOCATION = 'editor.action.goToLocations',
54+
HANDLE_PASTE_EVENT = 'java.edit.handlePasteEvent',
55+
HASHCODE_EQUALS_PROMPT = 'java.action.hashCodeEqualsPrompt',
56+
IGNORE_INCOMPLETE_CLASSPATH = 'java.ignoreIncompleteClasspath',
57+
IGNORE_INCOMPLETE_CLASSPATH_HELP = 'java.ignoreIncompleteClasspath.help',
58+
IMPORT_PROJECTS = 'java.project.import',
59+
IMPORT_PROJECTS_CMD = 'java.project.import.command',
14860
IS_TEST_FILE = 'java.project.isTestFile',
149-
150-
GET_ALL_JAVA_PROJECTS = 'java.project.getAll',
151-
152-
SWITCH_SERVER_MODE = 'java.server.mode.switch',
153-
154-
RESTART_LANGUAGE_SERVER = 'java.server.restart',
155-
156-
LEARN_MORE_ABOUT_REFACTORING = '_java.learnMoreAboutRefactorings',
157-
15861
LEARN_MORE_ABOUT_CLEAN_UPS = '_java.learnMoreAboutCleanUps',
159-
160-
TEMPLATE_VARIABLES = '_java.templateVariables',
161-
162-
NOT_COVERED_EXECUTION = '_java.notCoveredExecution',
163-
164-
METADATA_FILES_GENERATION = '_java.metadataFilesGeneration',
165-
166-
RUNTIME_VALIDATION_OPEN = 'java.runtimeValidation.open',
167-
168-
RESOLVE_WORKSPACE_SYMBOL = 'java.project.resolveWorkspaceSymbol',
169-
170-
GET_WORKSPACE_PATH = '_java.workspace.path',
171-
172-
UPGRADE_GRADLE_WRAPPER_CMD = 'java.project.upgradeGradle.command',
173-
UPGRADE_GRADLE_WRAPPER = 'java.project.upgradeGradle',
174-
62+
LEARN_MORE_ABOUT_REFACTORING = '_java.learnMoreAboutRefactorings',
63+
LIST_SOURCEPATHS = 'java.project.listSourcePaths',
64+
LIST_SOURCEPATHS_CMD = 'java.project.listSourcePaths.command',
17565
LOMBOK_CONFIGURE = 'java.lombokConfigure',
176-
177-
CREATE_MODULE_INFO = 'java.project.createModuleInfo',
178-
179-
CREATE_MODULE_INFO_COMMAND = 'java.project.createModuleInfo.command',
180-
66+
MANUAL_CLEANUP = 'java.action.doCleanup',
67+
MARKDOWN_API_RENDER = 'markdown.api.render',
68+
METADATA_FILES_GENERATION = '_java.metadataFilesGeneration',
69+
NAVIGATE_TO_SUPER_IMPLEMENTATION_COMMAND = 'java.action.navigateToSuperImplementation',
70+
NOT_COVERED_EXECUTION = '_java.notCoveredExecution',
71+
NULL_ANALYSIS_SET_MODE = 'java.compile.nullAnalysis.setMode',
72+
OPEN_BROWSER = 'vscode.open',
73+
OPEN_CLIENT_LOG = 'java.open.clientLog',
74+
OPEN_FILE = 'java.open.file',
75+
OPEN_FORMATTER = 'java.open.formatter.settings',
76+
OPEN_JSON_SETTINGS = 'workbench.action.openSettingsJson',
77+
OPEN_LOGS = 'java.open.logs',
78+
OPEN_OUTPUT = 'java.open.output',
79+
OPEN_SERVER_LOG = 'java.open.serverLog',
80+
OPEN_SERVER_STDERR_LOG = 'java.open.serverStderrLog',
81+
OPEN_SERVER_STDOUT_LOG = 'java.open.serverStdoutLog',
82+
OPEN_STATUS_SHORTCUT = '_java.openShortcuts',
83+
OPEN_TYPE_HIERARCHY = 'java.navigate.openTypeHierarchy',
84+
ORGANIZE_IMPORTS = 'java.action.organizeImports',
85+
ORGANIZE_IMPORTS_SILENTLY = 'java.edit.organizeImports',
86+
OVERRIDE_METHODS_PROMPT = 'java.action.overrideMethodsPrompt',
87+
PROJECT_CONFIGURATION_STATUS = 'java.projectConfiguration.status',
18188
REFRESH_BUNDLES = 'java.reloadBundles',
182-
18389
REFRESH_BUNDLES_COMMAND = '_java.reloadBundles.command',
184-
185-
CLEAN_SHARED_INDEXES = 'java.clean.sharedIndexes',
186-
187-
GET_DECOMPILED_SOURCE = 'java.decompile',
188-
189-
SMARTSEMICOLON_DETECTION = 'java.edit.smartSemicolonDetection',
190-
90+
RELOAD_WINDOW = 'workbench.action.reloadWindow',
91+
REMOVE_FROM_SOURCEPATH = 'java.project.removeFromSourcePath',
92+
REMOVE_FROM_SOURCEPATH_CMD = 'java.project.removeFromSourcePath.command',
93+
RENAME_COMMAND = 'java.action.rename',
19194
RESOLVE_PASTED_TEXT = 'java.project.resolveText',
192-
193-
OPEN_STATUS_SHORTCUT = '_java.openShortcuts',
95+
RESOLVE_SOURCE_ATTACHMENT = 'java.project.resolveSourceAttachment',
96+
RESOLVE_TYPE_HIERARCHY = 'java.navigate.resolveTypeHierarchy',
97+
RESOLVE_WORKSPACE_SYMBOL = 'java.project.resolveWorkspaceSymbol',
98+
RESTART_LANGUAGE_SERVER = 'java.server.restart',
99+
RUNTIME_VALIDATION_OPEN = 'java.runtimeValidation.open',
100+
SHOW_CLASS_HIERARCHY = 'java.action.showClassHierarchy',
101+
SHOW_JAVA_IMPLEMENTATIONS = 'java.show.implementations',
102+
SHOW_JAVA_REFERENCES = 'java.show.references',
103+
SHOW_REFERENCES = 'editor.action.showReferences',
104+
SHOW_SERVER_TASK_STATUS = 'java.show.server.task.status',
105+
SHOW_SUBTYPE_HIERARCHY = 'java.action.showSubtypeHierarchy',
106+
SHOW_SUPERTYPE_HIERARCHY = 'java.action.showSupertypeHierarchy',
107+
SHOW_TYPE_HIERARCHY = 'java.action.showTypeHierarchy',
108+
SMARTSEMICOLON_DETECTION = 'java.edit.smartSemicolonDetection',
109+
SWITCH_SERVER_MODE = 'java.server.mode.switch',
110+
TEMPLATE_VARIABLES = '_java.templateVariables',
111+
UPDATE_SOURCE_ATTACHMENT = 'java.project.updateSourceAttachment',
112+
UPDATE_SOURCE_ATTACHMENT_CMD = 'java.project.updateSourceAttachment.command',
113+
UPGRADE_GRADLE_WRAPPER = 'java.project.upgradeGradle',
114+
UPGRADE_GRADLE_WRAPPER_CMD = 'java.project.upgradeGradle.command',
194115
}
195116

196117
M.handlers = {
@@ -205,3 +126,27 @@ M.handlers = {
205126
require('java.api.build').full_build_workspace(is_full_build)
206127
end,
207128
}
129+
130+
local ignored_commands = { M.commands.REFRESH_BUNDLES_COMMAND }
131+
132+
for _, command in pairs(M.commands) do
133+
if
134+
not M.handlers[command] and not vim.tbl_contains(ignored_commands, command)
135+
then
136+
local message = string.format(
137+
'"%s" is not supported yet!'
138+
.. '\nPlease request the feature using below link'
139+
.. '\nhttps://github.com/nvim-java/nvim-java/issues/new?assignees='
140+
.. '&labels=enhancement&projects=&template=feature_request.yml&title=feature%%3A+',
141+
command
142+
)
143+
144+
M.handlers[command] = function()
145+
notify.warn(message)
146+
return vim.lsp.rpc_response_error(
147+
vim.lsp.protocol.ErrorCodes.MethodNotFound,
148+
'Not implemented yes'
149+
)
150+
end
151+
end
152+
end

0 commit comments

Comments
 (0)