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_HOME defined)
- Ghidra 11.4.2 (in
/opt/ghidra/ghidra_11.4.2_PUBLIC)
- OpenJDK 23.0.2 (
JAVA_HOME defined)
- 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.addLocalAction
void docking.Tool.addLocalAction(ComponentProvider arg0, DockingActionIf arg1);
- Compare with source:
- Extract
Docking-src.zip from /opt/ghidra/ghidra_11.4.2_PUBLIC/Framework/Docking/lib/Docking-src.zip
- Go to
docking/Tool.java and view addLocalAction @ line 157
void docking.Tool.addLocalAction(ComponentProvider componentProvider, DockingActionIf action);
GhidraProject.zip
Description
Zipped source files in
java.project.referenceLibraries::sourcesare 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 likearg0while 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.jsonfile with the relevant libraries and sources from your Ghidra installation path.Environment
GRADLE_HOMEdefined)/opt/ghidra/ghidra_11.4.2_PUBLIC)JAVA_HOMEdefined)Expected behaviour
Actual behaviour
arg0Steps to reproduce
src/java/main/java/ghidraproject/GhidraProject.java:GhidraProjectPlugin.MyProvider::createActionsdockingTool.addLocalActionDocking-src.zipfrom/opt/ghidra/ghidra_11.4.2_PUBLIC/Framework/Docking/lib/Docking-src.zipdocking/Tool.javaand viewaddLocalAction@ line 157GhidraProject.zip