On Thu, 23 Apr 2020, Mattias Gaertner via fpc-pascal wrote:


Ryan Joseph via fpc-pascal <fpc-pascal@lists.freepascal.org> hat am 23. April 
2020 um 10:58 geschrieben:


> On Apr 23, 2020, at 3:49 PM, Mattias Gaertner via fpc-pascal 
<fpc-pascal@lists.freepascal.org> wrote:
> > 3) Class/record member completions.
> I guess you mean identifier completion after a dot.

Exactly. Fields or methods and helpers even if possible. I assume that exists.

Btw, the names you're giving like "FindDeclaration" where can I find these? 
Maybe there's a wiki or unit header I can look at.

https://wiki.freepascal.org/Codetools
And then look at the examples in lazarus/components/codetools/examples.


> > I would like to implement "code lens" which shows the context of a symbol 
in a popup window but I think only VScode supports this feature and it's no common so code 
tools may not be able to retrieve.
> What do you mean with "context"? Codetools can give you all kind of context.

For example VScode lets you hover over a symbol name like TObject and a window 
will popup that shows the declaration in code, like a mini-editor that goes to 
the line where the declaration starts in that file. It's basically the same as 
opening a new tab/window but it's more for really quick references. I'm not 
sure how it's implemented in LSP but maybe you could return the line number and 
file name and the client does the rest.

FindDeclaration gives you the line and column. You can also get the source span 
of the declaration.
And there is FindSmartHint, which returns a brief text for a declaration 
including some context like type/var/const, private/public, parent class, etc.

Seems like exactly the code lens functionality :-)

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to