LSP/TypeScript: support for type hierarchy and call hierarchy
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 935
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 17
Description
### Description
Type hierarchy and call hierarchy are very useful features when working on medium to large sized projects (specially the former). If the LSP/TypeScript plug-in for NetBeans supported these two features, I guess that any language supported through LSP would benefit from them (as long as the server in question also supports them, of course).
Call hierarchy is specified in [LSP 3.16](https://microsoft.github.io/language-server-protocol/specifications/specification-3-16/), whereas type hierarchy is specified in [LSP 3.17](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/).
If I'm not mistaken, NetBeans uses LSP4J to implement its LSP client. LSP 3.17 is almost fully supported by LSP4J 0.14 (except Notebook support and `WorkspaceSymbol.data`). So I guess that, as a first step, NetBeans should upgrade LSP4J from 0.12 to 0.14 (or the future 0.15).
### Use case/motivation
When we work with big code bases or when we work with vast libraries or frameworks, it's easy to forget the type hierarchy that a specific type belongs to. Being able to quickly view such hierarchy in the IDE itself is very useful. Otherwise you need to check the documentation (if it exists) or dive and search in the source code (if available).
With regard to the call hierarchy, it's very useful when we've a function or method that is used in many places and we want to change its signature. By inspecting the call hierarchy, we can know why it takes some parameters whose need is not so obvious.
### Related issues
_No response_
### Are you willing to submit a pull request?
No
### Code of Conduct
Yes
Contributor guide
Research direction
Start by reviewing NetBeans' LSP client and the LSP4J dependency, currently described as 0.12, against the LSP 3.16 and 3.17 specifications. Determine the integration work needed for type hierarchy and call hierarchy, and verify that both features work for LSP servers that support them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, typescript
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100