eclipse-jdtls / eclipse.jdt.ls

Java language server
1.76k stars 393 forks source link

Find references only working in the current document. Not working. Across the project. #3280

Open kcpinnaka opened 1 week ago

kcpinnaka commented 1 week ago

I'm using the following command to start the server ` command = [ "x:\jdk-17_windows-x64_bin\jdk-17.0.2\bin\java.exe", "-Declipse.application=org.eclipse.jdt.ls.core.id1", "-Dosgi.bundles.defaultStartLevel=4", "-Declipse.product=org.eclipse.jdt.ls.core.product", "-Dosgi.checkConfiguration=true", r"-Dosgi.sharedConfiguration.area=x:\eclipse.jdt.lsNew\org.eclipse.jdt.ls.product\target\repository\config_win", "-Dosgi.sharedConfiguration.area.readOnly=true", "-Dosgi.configuration.cascaded=true", "-noverify", "-Xms1G", f"-Djava.util.logging.config.file={log_config}", "-Dlog.level=ALL", "-jar", r"x:\eclipse.jdt.lsNew\org.eclipse.jdt.ls.product\target\repository\plugins\org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar", "-configuration", r"x:\eclipse.jdt.lsNew\org.eclipse.jdt.ls.product\target\repository\config_win", "-data", path ] def initialize(self): params = { "processId": None, "rootUri": self.root_uri, "capabilities": { "references": { "dynamicRegistration": True } } } return self.client.send_request_and_wait_for_response("initialize", params)

def find_references(self, file_uri, line, character):
    params = {
        "textDocument": {"uri": file_uri},
        "position": {"line": line, "character": character},
        "context": {"includeDeclaration": True}
    }
    return self.client.send_request_and_wait_for_response("textDocument/references", params)

`

Find references only working in the current document. Not working. Across the project.

However, when I run the project In Eclipse, PDE debugging mode on jdt.ls.socket-stream.launch, I am able to see all references across the project.

rgrunber commented 5 days ago

Do references from across the project show if you set "classFileContentsSupport": true in extendedClientCapabilities, (should be under the params object sent to initialize) ? See https://github.com/eclipse-jdtls/eclipse.jdt.ls/issues/3166#issuecomment-2160963153 .

kcpinnaka commented 4 days ago

Thank you for responding your response. But I'm still seeing the same issue.

I'm attaching the initialization response If it can provide more insights.

initialization response { 'jsonrpc': '2.0', 'id': 1, 'result': { 'capabilities': { 'textDocumentSync': { 'openClose': True, 'change': 2, 'save': { 'includeText': True } }, 'hoverProvider': True, 'completionProvider': { 'resolveProvider': True, 'triggerCharacters': ['.', '@', '#', '*', ' '] }, 'signatureHelpProvider': { 'triggerCharacters': ['(', ','] }, 'definitionProvider': True, 'typeDefinitionProvider': True, 'implementationProvider': True, 'referencesProvider': True, 'documentHighlightProvider': True, 'documentSymbolProvider': True, 'workspaceSymbolProvider': True, 'codeActionProvider': { 'codeActionKinds': [], 'resolveProvider': False }, 'codeLensProvider': { 'resolveProvider': True }, 'documentFormattingProvider': True, 'documentRangeFormattingProvider': True, 'documentOnTypeFormattingProvider': { 'firstTriggerCharacter': ';', 'moreTriggerCharacter': ['\n', '}'] }, 'renameProvider': { 'prepareProvider': True }, 'foldingRangeProvider': True, 'declarationProvider': True, 'executeCommandProvider': { 'commands': ['java.project.import', 'java.project.changeImportedProjects', 'java.navigate.openTypeHierarchy', 'java.project.resolveStackTraceLocation', 'java.edit.handlePasteEvent', 'java.edit.stringFormatting', 'java.project.getSettings', 'java.project.resolveWorkspaceSymbol', 'java.project.upgradeGradle', 'java.project.createModuleInfo', 'java.vm.getAllInstalls', 'java.edit.organizeImports', 'java.project.refreshDiagnostics', 'java.project.removeFromSourcePath', 'java.project.listSourcePaths', 'java.project.updateSettings', 'java.project.getAll', 'java.reloadBundles', 'java.project.isTestFile', 'java.project.resolveText', 'java.project.getClasspaths', 'java.navigate.resolveTypeHierarchy', 'java.edit.smartSemicolonDetection', 'java.project.updateSourceAttachment', 'java.project.updateClassPaths', 'java.decompile', 'java.protobuf.generateSources', 'java.project.resolveSourceAttachment', 'java.project.updateJdk', 'java.project.addToSourcePath', 'java.completion.onDidSelect'] }, 'workspace': { 'workspaceFolders': { 'supported': True, 'changeNotifications': True } }, 'typeHierarchyProvider': True, 'callHierarchyProvider': True, 'selectionRangeProvider': True, 'semanticTokensProvider': { 'legend': { 'tokenTypes': ['namespace', 'class', 'interface', 'enum', 'enumMember', 'type', 'typeParameter', 'method', 'property', 'variable', 'parameter', 'modifier', 'keyword', 'annotation', 'annotationMember', 'record', 'recordComponent'], 'tokenModifiers': ['abstract', 'static', 'readonly', 'deprecated', 'declaration', 'documentation', 'public', 'private', 'protected', 'native', 'generic', 'typeArgument', 'importDeclaration', 'constructor'] }, 'range': False, 'full': { 'delta': False }, 'documentSelector': [{ 'language': 'java', 'scheme': 'file' }, { 'language': 'java', 'scheme': 'jdt' } ] }, 'inlayHintProvider': True } } }