SynEdit was abandoned for some time, but it's last update was March of last year ... and they've never had much alacrity. What I do know is that it worked well every time in Delphi, and that a port was planned.

In all honesty, it would be nice to have a warning when components aren't fully ported. It's easy to make a dialog that pops up when placed on the form, warning the user when something isn't fully ported. Or at least a slice of the docs mentioning this.

When Lazarus uses the components to get itself working and I try and follow suit only to find it doesn't work, this doesn't give me a "warm fuzzy feeling" about the IDE!

Quite frankly I am shocked that no one seems to have caught this yet.

---

Addendum:

I have now endeavored to fix the hideous code I've found. I have no clue why the following code was written the way it was, save for being cryptic, but I cannot figure out how to recompile the component. Nice of Lazarus to let me do a full recompile automatically like delphi does.

This is the wackiest code I've seen for a for loop:
Code:
  while First <= Last do
  begin
    I &#58;= &#40;First + Last&#41; shr 1;
    Compare &#58;= CompareStr&#40;fKeywords&#91;i&#93;, Token&#41;;
    if Compare = 0 then
    begin
      Result &#58;= True;
      break;
    end else
      if Compare < 0 then First &#58;= I + 1 else Last &#58;= I - 1;
  end;
Okay, I rebuilt Lazarus and this section of code is the culprit. I hate cleaning up after people who code like this...