microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.45k stars 29.35k forks source link

Document symbols: details are not rendered #190478

Open florianhumblot opened 1 year ago

florianhumblot commented 1 year ago

When using CTRL+O or @symbol in VSCode you get the symbol names in the current document from the LSP. If you're using a language that supports function overloading like C++ or C# it can get really hard to navigate the file using that functionality.

It would be great to be able to see a function signature (or at the very least the function arguments) in this view so that you can navigate by typing the name + some part of the type.

An example of how this looks with a language server that handles the symbol names according to the spec: image

compared to how it can look if you don't 100% follow the LSP spec: image

The Microsoft C++ extension already supports this by including the details in the name field of the LSP but this means that every other LSP also would need to break the spec to support this feature (and other editors would then get unexpected information in the name field).

It would be nice to either by default show the function signature information by default in languages that support overloading, or to have an option that gets VSCode to show the function signature.

Discussion on the clangd patch that I made: https://reviews.llvm.org/D157080 Related issue in the clangd repo: https://github.com/clangd/clangd/issues/1344 A (potentially incomplete) list of languages that support overloading: https://en.wikipedia.org/wiki/Function_overloading

aeschli commented 1 year ago

Document symbols have a name and details. IMO that would be the right field to use. However, Go to Symbols in Editor doesn't render the detail field. Ok to rename this request to ask for showing detail in Go to Symbols in Editor ?

If your request is that also Workspace symbols have details filed, then I suggest to file a new specific request for that.

florianhumblot commented 1 year ago

@aeschli I'm fine with renaming to Go to Symbols in Editor but I do mean both the CTRL + T for symbols in workspace and CTRL + SHIFT + O for symbols in file. If you mean I should file a separate request for the CTRL + T symbol lookup I'll do that too.

vscodenpa commented 1 year ago

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!

aeschli commented 1 year ago

Yes, please file a separate request.

vscodenpa commented 1 year ago

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.

Happy Coding!