[Lazarus] Automatic identifier completion
Martin Frb
lazarus at mfriebe.de
Tue Aug 20 23:20:53 CEST 2019
Not 100% sure, have to go through the code again. (Also you can add to
https://bugs.freepascal.org/view.php?id=33054 )
Just throwing in a few quick notes.
For string and comments
procedure TSourceEditorManager.OnSourceCompletionTimer(Sender: TObject);
function CheckStartIdentCompletion: boolean;
...
if
SrcEdit.EditorComponent.GetHighlighterAttriAtRowCol(LogCaret,Token,Attri)
and (Attri<>nil) and (Attri.StoredName=SYNS_XML_AttrComment) then
> auto hide after the first character gets deleted by backspace.
You mean the word becomes empty.
Or the first char typed after the completion did open? (i.e. if the I
type Sou and completion only opens then, the hide when I attempt to del
part of the Sou?)
In either case, there are various ways I can think of for investigation,
and we need to established which one is good.
SourceEditor sees the typed chars in UserCommands (or the other
callback). SO it could interfere there.
It could also be added as a callback to (I think that is the one):
TSourceEditCompletion=class(TSynCompletion)
Also what should happen, if during completion, other commands are invoked
ctrl-e for search as you type
even ctrl-f
(those already are an issue....)
----------------------------
If I am not mistaken (only had a very brief look at the patch)
You currently have a global bool option: on/off?
Would it be sensible to have a (separate) time delay. So if the user
types fast, it will not interfere?
I seem to have thought of that as a necessity on the bug report. But
since I am not actually using this feature (even if avail), I might be
wrong. (Or maybe it was using a timeout, but the existing one...)
Equally there might be the (unnecessary) idea, to only trigger if at
least n chars of the current word have been typed?
Testing with syncro-edit and multi-caret?
The latter should probably disable it.
On 20/08/2019 18:54, Darius Blaszyk via lazarus wrote:
> Now with attachment! 😀
>
> On Tue, Aug 20, 2019 at 6:48 PM Darius Blaszyk <dhkblaszyk at gmail.com
> <mailto:dhkblaszyk at gmail.com>> wrote:
>
> Hi!
>
> Attached a (still) naive patch that implements automatic
> completion upon keypress. It's already giving me a big boost in
> productivity so I thought I might share it here. It would be good
> to make the identifier invocation a bit smarter. For instance I
> would like to prevent invocation in case the word is part of a
> string or comment. Also it should auto hide after the first
> character gets deleted by backspace. Any tips or hints how to use
> the codetools to get the required information is appreciated!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20190820/c00e9cc5/attachment.html>
More information about the lazarus
mailing list