redhat-developer / redhat-developer/vscode-java
Zipped sources are not respected
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 2.3k
- Forks
- 546
- Merge medio
- 20 h 1 min
- PR fusionados (30 d)
- 11
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comience reproduciendo el problema con los archivos adjuntos settings.json y GhidraProject.zip, centrándose en java.project.referenceLibraries::sources y en la navegación desde GhidraProject.java. Compare la firma descompilada con Docking-src.zip; se considera terminado cuando la navegación y el autocompletado utilizan los nombres de los parámetros del archivo de código fuente.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, vscode
- Área
- developer-experience, tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100