You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.
So we can see that we do already set containerName in a few cases. However, without nested location ranges atom can't construct the proper syntax tree outline & can't connect the containerName with the actual symbol name, so both appear separately.
So it looks like we should make the following improvements, that may need enhancements to rls-analysis:
Construct test case using above example.
Extend all location end positions to the end of the owning scope if applicable. So for example the mod stuff location should change from [7:4, 7:9] -> [7:4, 56:1]
Add missing symbols, ie impl Temp(probably just use Unknown to describe this symbol kind)
/**
* Children of this symbol, e.g. properties of a class.
*/
children?: DocumentSymbol[];
/**
* The name of the symbol containing this symbol. This information is for
* user interface purposes (e.g. to render a qualifier in the user interface
* if necessary). It can't be used to re-infer a hierarchy for the document
* symbols.
*/
containerName?: string;
We should provide textDocument/documentSymbol outlines that allow showing the symbols in a tree.
Pulled out my comment from #86 into it's own issue as I guess its a larger thing.
Current Status
textDocument/documentSymbol response
So we can see that we do already set
containerName
in a few cases. However, without nested location ranges atom can't construct the proper syntax tree outline & can't connect thecontainerName
with the actual symbolname
, so both appear separately.So it looks like we should make the following improvements, that may need enhancements to
rls-analysis
:So for example the
mod stuff
location should change from [7:4, 7:9] -> [7:4, 56:1]impl Temp
(probably just useUnknown
to describe this symbol kind)containerName
s, iefn fun1() { fn fun2() {} }
impl Speaks for Temp
"Speaks" -> "Speaks for Temp" (remove generics if they exist though?)containerName
sLater enhancements:
lazy_static!
,thread_local!
, etcTest/example code
The text was updated successfully, but these errors were encountered: