redhat-developer / redhat-developer/vscode-java

Zipped sources are not respected

Abierto
#4,279 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug Gradle standalone files
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_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

  1. Install Ghidra
  2. Use provided settings.json
  3. Open the attached project (it assumes Ghidra is in the above path)
  4. In src/java/main/java/ghidraproject/GhidraProject.java:
    1. Navigate to GhidraProjectPlugin.MyProvider::createActions
    2. Hover over line 108: dockingTool.addLocalAction
      void docking.Tool.addLocalAction(ComponentProvider arg0, DockingActionIf arg1);
      
  5. Compare with source:
    1. Extract Docking-src.zip from /opt/ghidra/ghidra_11.4.2_PUBLIC/Framework/Docking/lib/Docking-src.zip
    2. Go to docking/Tool.java and view addLocalAction @ line 157
      void docking.Tool.addLocalAction(ComponentProvider componentProvider, DockingActionIf action);
      

GhidraProject.zip

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.