Prioritize and Differentiate Method Completions by Declaring Type
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- java, typescript
- Domínio
- developer-experience, tooling
Direção de pesquisa
Nenhum arquivo de implementação ou teste é identificado na issue. Comece localizando os pontos de entrada do ranking de conclusão Java e da apresentação de itens de conclusão; em seguida, rastreie como os tipos declarantes e a herança são representados. Defina a ordem das conclusões e os marcadores visuais para métodos atuais, de ancestral direto, de interface e de níveis mais profundos, e adicione cobertura para exemplos de herança de classes e interfaces.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Summary
Improve Java IntelliSense in Visual Studio Code by prioritizing methods based on their declaring type and visually distinguishing methods declared in the current class from inherited ones.
Problem
When invoking code completion on an object, methods from the entire inheritance hierarchy (class, superclasses, interfaces) are presented in a flat, mostly alphabetical or heuristically ranked list.
This creates two issues:
- Hard to quickly identify methods defined in the current class
- No clear distinction between local vs inherited methods
Expected Behavior
1. Ordering by Declaring Type
Completion items should be grouped and ordered as follows:
- Methods declared in the current class
- Methods from direct superclasses
- Methods from interfaces
- Methods from deeper inheritance levels
Within each group, keep existing sorting (alphabetical or relevance-based).
2. Frequency-Based Promotion
- Frequently used methods may be promoted higher in the list
- However, usage-based ranking should not completely override structural grouping
3. Visual Differentiation
- Methods declared in the current class should be bolded
- (Optional) Other methods may include subtle indicators of their declaring type
Example (Class Inheritance)
class Base {
void baseMethod() {}
}
interface MyInterface {
void interfaceMethod() {}
}
class Derived extends Base implements MyInterface {
void derivedMethod() {}
}
When invoking completion on Derived:
Expected order:
- derivedMethod()
- baseMethod()
- interfaceMethod()
Example (Interface Inheritance)
interface BaseRepository<T> {
void save(T entity);
}
interface PagingRepository<T> extends BaseRepository<T> {
Iterable<T> findAll();
}
interface UserRepository extends PagingRepository<User> {
User findByEmail(String email);
}
When invoking completion on UserRepository:
Expected order:
- findByEmail(String email) // declared in UserRepository
- findAll() // from PagingRepository
- save(T entity) // from BaseRepository
Real-World Use Case
This is especially useful in frameworks like Spring Data / Hibernate, where repositories are composed via multiple interface layers.
For example:
- Developers primarily care about methods declared in their own repository interface
- Framework-provided methods (e.g.,
save,findAll) are secondary but still important
Improved ordering and highlighting would:
- Make custom query methods immediately visible
- Reduce cognitive load when working with large inherited APIs
Motivation
- Faster identification of relevant methods
- Better usability in deep inheritance hierarchies
- Clear distinction between user-defined and framework-provided methods
- Aligns with developer mental models
- Linguagem predominante
- TypeScript
- Estrelas
- 2.3k
- Forks
- 549
- Merge médio
- 8h 20min
- PRs com merge (30d)
- 6
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de redhat-developer/vscode-java
-
JDK_HOME can be sorted after lower-priority auto-detected JDK sourcesTalvez já em andamento @shblue21 assumiu há 118 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
redhat-developer/vscode-java#4426 ·
Mantenedores costumam responder em até 1 dia
-
Java template regressionAbertabug
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
redhat-developer/vscode-java#4539 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
redhat-developer/vscode-java#4537 ·
Mantenedores costumam responder em até 1 dia
-
bug Lombok
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
redhat-developer/vscode-java#4521 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
bug need info
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
redhat-developer/vscode-java#4520 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
Todas as issues de redhat-developer/vscode-java
Issues semelhantes
-
Table: Space fires onActivate in single-selection mode — the reference doc and the JSDoc disagreeAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
sidorares/react-x11-components#764 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
backnotprop/plannotator#1840 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
JoviDeCroock/pracht#432 ·
Mantenedores costumam responder em até 1 dia
-
Add: CNN en Espanol SDAbertaapproved check:passed streams:add
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Hardware attribute name "app Connection Support" has inconsistent casingTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
walletbeat/walletbeat#1628 ·
Mantenedores costumam responder em até 1 dia