microsoft / microsoft/vscode-java-pack
Make Ctrl+T more context-dependent
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- TypeScript
- Estrellas
- 352
- Forks
- 166
- Merge medio
- 17 h 47 min
- PR fusionados (30 d)
- 32
Descripción
Suggestion
When pressing Ctrl+T when highlighting a method, we see the method hierarchy instead of the type hierarchy and navigation leads us directly to the method's declaration within the selected type and not to the declaration of the type itself.
Use Cases
I want to be able to easily navigate to all implementations of subclasses as well as super classes of a certain method to better understand how a certain type affects implementation of the selected method.
Examples
Given the following class hierarchy:
class A {
public String generateGreeting() {
return "Hi!";
}
}
class B extends A {
@Override
public String generateGreeting() {
return "Hello!";
}
}
class C extends A {
@Override
public String generateGreeting() {
return "Guten Tag!";
}
}
When highlighting generateGreeting() and pressing Ctrl+T I want to see a tree where nodes represent classes implementing the highlighted method. The nodes' nesting represents the class hierarchy. The nodes shown depend on the declared type of the field/variable on the caller side. In case the method is highlighted at its declaration the declared type would be the class enclosing the method. All sub classes and super classes of the declared type implementing the method must be shown as nodes in the tree (not only sub classes). When clicking a node, VS Code navigates to the corresponding method implementation of the highlighted method, not to the beginning of the type declaration (current behavior):
Situation 1:
A a = new B();
a.generateGreeting();
Declared type would be A, so I want to see implementations of A.generateGreeting and B.generateGreeting and C.generateGreeting as nodes in the tree
Situation 2:
B b = new B();
b.generateGreeting();
Declared type would be B, so I want to see implementations of A.generateGreeting and B.generateGreeting as nodes in the tree, but not C.generateGreeting because it is neither a subclass nor a super class of B.
You could check Eclipse's behavior for an existing implementation.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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
El payload no menciona archivos fuente ni pruebas; empieza reproduciendo Ctrl+T sobre métodos Java resaltados en VS Code y compara el comportamiento existente con Eclipse. Se considera terminado cuando el árbol sigue las implementaciones de métodos relevantes de la superclase y la subclase declaradas, y seleccionar un nodo navega a esa implementación del método en lugar de a la declaración del tipo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, typescript, vscode
- Área
- developer-experience, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 32/100