On Thu, 23 Apr 2020 20:45:58 +0700
Ryan Joseph via fpc-pascal <fpc-pascal@lists.freepascal.org> wrote:

> > On Apr 23, 2020, at 8:20 PM, Arjan Adriaanse <ar...@adriaan.se>
> > wrote:
> > 
> > Perhaps not all the used generics features are available yet in
> > older FPC versions.  I use the most recent release candidate from
> > ftp://ftp.freepascal.org/pub/fpc/beta/3.2.0-rc1/ [2], but will
> > investigate if older versions also work.  
> 
> Lazbuild used FPC 3.0.4. How do I make lazbuild choose the trunk
> instead of 3.0.4?

Use the compiler option, for example:

lazbuild --compiler=/usr/lib/fpc/3.2.0/ppcx64 pasls.lpi

> The first thing to address is TCompletion.Process and how it
> interacts with code tools. For example:
> 
>     URI := ParseURI(textDocument.uri);
>     Code := CodeToolBoss.FindFile(URI.Path + URI.Document);
>     X := position.character;
>     Y := position.line;
>     Line := Code.GetLine(Y);
>     GetIdentStartEndAtPosition(Line, X + 1, PStart, PEnd);
>     CodeToolBoss.IdentifierList.Prefix := Copy(Line, PStart, PEnd -
> PStart);
> 
> How LSP is intended to work is that a text buffer which contains the
> current state of the file is sent to the server and then this buffer
> is parsed. I think what the code above does is only operate on the
> file on disk. This maybe be fine for certain completions but it will
> be static until the user saves the file in the client. Worse yet is
> that the text offset we receive from the client is going to be out of
> sync.

The CodeToolBoss actually keeps a cache of files which are loaded at
the 'textDocument/didOpen' notification. When the user changes text at
the client side, even without saving, a 'textDocument/didChange'
notification is sent which is used to update the cache. The
CodeToolBoss seems to only use the file path as identifier, but the
contents of the files and changes are provided by the client.

Regards,

Arjan

Attachment: pgpyHDQlDX7PD.pgp
Description: OpenPGP digital signature

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

Reply via email to