|
| 1 | +local log = require('java.utils.log') |
| 2 | + |
| 3 | +local M = {} |
| 4 | + |
| 5 | +local id |
| 6 | + |
| 7 | +id = vim.api.nvim_create_autocmd('LspAttach', { |
| 8 | + callback = function(args) |
| 9 | + local client = vim.lsp.get_client_by_id(args.data.client_id) |
| 10 | + |
| 11 | + if client and client.name == 'jdtls' then |
| 12 | + log.debug('adding vim.lsp.commands for java') |
| 13 | + |
| 14 | + for key, handler in pairs(M.handlers) do |
| 15 | + vim.lsp.commands[key] = handler |
| 16 | + end |
| 17 | + |
| 18 | + vim.api.nvim_del_autocmd(id) |
| 19 | + end |
| 20 | + end, |
| 21 | + |
| 22 | + group = vim.api.nvim_create_augroup('JavaCommandReg', {}), |
| 23 | +}) |
| 24 | + |
| 25 | +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 | + |
| 53 | + APPLY_WORKSPACE_EDIT = 'java.apply.workspaceEdit', |
| 54 | + |
| 55 | + EXECUTE_WORKSPACE_COMMAND = 'java.execute.workspaceCommand', |
| 56 | + |
| 57 | + COMPILE_WORKSPACE = 'java.workspace.compile', |
| 58 | + |
| 59 | + 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', |
| 93 | + 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 | + |
| 108 | + CLIPBOARD_ONPASTE = 'java.action.clipboardPasteAction', |
| 109 | + |
| 110 | + FILESEXPLORER_ONPASTE = 'java.action.filesExplorerPasteAction', |
| 111 | + |
| 112 | + CHOOSE_IMPORTS = 'java.action.organizeImports.chooseImports', |
| 113 | + |
| 114 | + GENERATE_TOSTRING_PROMPT = 'java.action.generateToStringPrompt', |
| 115 | + |
| 116 | + GENERATE_ACCESSORS_PROMPT = 'java.action.generateAccessorsPrompt', |
| 117 | + |
| 118 | + GENERATE_CONSTRUCTORS_PROMPT = 'java.action.generateConstructorsPrompt', |
| 119 | + |
| 120 | + 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 | + |
| 146 | + GET_CLASSPATHS = 'java.project.getClasspaths', |
| 147 | + |
| 148 | + 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 | + |
| 158 | + 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 | + |
| 175 | + LOMBOK_CONFIGURE = 'java.lombokConfigure', |
| 176 | + |
| 177 | + CREATE_MODULE_INFO = 'java.project.createModuleInfo', |
| 178 | + |
| 179 | + CREATE_MODULE_INFO_COMMAND = 'java.project.createModuleInfo.command', |
| 180 | + |
| 181 | + REFRESH_BUNDLES = 'java.reloadBundles', |
| 182 | + |
| 183 | + 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 | + |
| 191 | + RESOLVE_PASTED_TEXT = 'java.project.resolveText', |
| 192 | + |
| 193 | + OPEN_STATUS_SHORTCUT = '_java.openShortcuts', |
| 194 | +} |
| 195 | + |
| 196 | +M.handlers = { |
| 197 | + [M.commands.COMPILE_WORKSPACE] = function(is_full_build) |
| 198 | + require('java.api.build').full_build_workspace(is_full_build) |
| 199 | + end, |
| 200 | +} |
0 commit comments