On 04/04/2011 06:47 PM, Martin wrote:
On 04/04/2011 16:44, patspiper wrote:
On 04/04/2011 06:30 PM, Martin wrote:
On 04/04/2011 16:20, patspiper wrote:
Hi,

1- How can TSynCompletion's ItemList be filled depending on what is before the dot(.)? I know the Lazarus IDE does it, but I couldn't figure it out.

TEdit.|

If Ctrl+Space is pressed, then the list of TEdit properties should popup. Currentstring is empty. How can we read the word before the dot?

There is an example on how to use it, in the example folder.

It should show you which callbacks are triggered, so you can place code of your own there.
I checked the 3 examples before posting. They show how to use CurrentString (which is after the dot), but not how to read the token before the dot.

ok, I may be able to look into it later.

but what about using LogicalCaretXY, then getting the line, and reading it?

possible subtracting the length of CurrentString.
I am almost there (by giving it another shot at the ide sources):

  Line:=SynEdit1.LineText;
  p1:=SynEdit1.LogicalCaretXY;
  if (p1.x>length(Line)+1) or (Line='') then exit;
  SynEdit1.GetWordBoundsAtRowCol(p1, x1, x2);
  // There must be a saner way than subtracting 2
  p1.x := x1-2;
  SynEdit1.GetWordBoundsAtRowCol(p1, x1, x2);
  WordToken := copy(Line, x1, x2);

However, what is the correct way to go back to the previous token? Subtracting 2 is not the way.

Thanks,
Stephano

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to