redhat-developer / redhat-developer/vscode-java
Zipped sources are not respected
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2.3k
- Forks
- 546
- Avg merge
- 20h 1m
- Merged PRs (30d)
- 11
Description
Description
Zipped source files in java.project.referenceLibraries::sources are not being respected and instead, navigating to the source just gives you code decompiled by IntelliJ FernFlower. This messes up the autocomplete because the argument names will be generic things like arg0 while the source files in the zip file have properly named variables.
I am creating a module for Ghidra in VSCode using their skeleton project generation tool, which autopopulates a settings.json file with the relevant libraries and sources from your Ghidra installation path.
Environment
- Gradle 8.14.1 (
GRADLE_HOMEdefined) - Ghidra 11.4.2 (in
/opt/ghidra/ghidra_11.4.2_PUBLIC) - OpenJDK 23.0.2 (
JAVA_HOMEdefined) - Offline (see settings.json)
- Version: 1.50, 1.48 for Linux x64
Expected behaviour
- Right-clicking on a library function should show its definition as defined in the source file.
- Function autocomplete should show correct names for parameters
Actual behaviour
- Right-clicking on a library function takes you to a class decompiled with FernFlower
- Function autocomplete uses generic argument names like
arg0
Steps to reproduce
- Install Ghidra
- Use provided settings.json
- Open the attached project (it assumes Ghidra is in the above path)
- In
src/java/main/java/ghidraproject/GhidraProject.java:- Navigate to
GhidraProjectPlugin.MyProvider::createActions - Hover over line 108:
dockingTool.addLocalActionvoid docking.Tool.addLocalAction(ComponentProvider arg0, DockingActionIf arg1);
- Navigate to
- Compare with source:
- Extract
Docking-src.zipfrom/opt/ghidra/ghidra_11.4.2_PUBLIC/Framework/Docking/lib/Docking-src.zip - Go to
docking/Tool.javaand viewaddLocalAction@ line 157void docking.Tool.addLocalAction(ComponentProvider componentProvider, DockingActionIf action);
- Extract
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue with the attached settings.json and GhidraProject.zip, focusing on java.project.referenceLibraries::sources and the navigation from GhidraProject.java. Compare the decompiled signature with Docking-src.zip; done means navigation and autocomplete use the source archive's parameter names.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, vscode
- Domain
- developer-experience, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100