----- Original Message ----- From: "Mattias Gaertner" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, July 23, 2006 12:27 PM
Subject: Re: [lazarus] SynEdit + Unihighlighter (must have fixed caps problem)


On Sun, 23 Jul 2006 10:22:00 +0200
"Darius Blaszijk" <[EMAIL PROTECTED]> wrote:

>> Question about SynEdit: I know the lazarus version is a very
>> customized one from old source... Will it be replaced by a newer
>> version from the original project?
>
> Yes, eventually.

Mattias,

I'm willing to try to port UniSynEdit to Lazarus (and keep it in sync with

their trunk), however how do you feel about that. I know you have your
doubts about certain parts of the code (can't remember anymore what though

precisely). Would it be sensible then to start something like this? Or is
there another component that will be a better candidate to be used in the
sourceeditor eventually. Or do you feel that a completely new component
should be developed purely for Lazarus source editor which is highly
optimized just for that task and is integrated at it's best in Lazarus.
What
are the properties such a component at least should have?

Here is a list, what features has been added to synedit.

- LCL support (not just compile. using less messages, but methods)
- UTF-8 support
- bidi support
- fast enough to open and edit fpcmacosall.pas
- 64bit support
- Options:
eoBracketHighlight,        // Highlight matching bracket
eoDoubleClickSelectsLine,  // Select line on double click
eoHideRightMargin,         // Hides the right margin line
eoPersistentCaret,         // Do not hide caret when focus lost
eoShowCtrlMouseLinks,      // Pressing Ctrl will highlight the word under
the mouse cursor
eoAutoIndentOnPaste,       // Indent text inserted from clipboard
eoSpacesToTabs             // Converts space characters to tabs and spaces
eoCaretSkipsSelection,     // Caret skips selection on VK_LEFT/VK_RIGHT
eoAlwaysVisibleCaret       // Move caret to be always visible when
scrolling
- Support for primary selection (middle mouse click under X)
- property BlockIndent: integer
- procedure SelectToBrace;
- procedure SelectLine;
- procedure SelectParagraph;
- property SelStart: Integer
- property SelEnd: Integer
- code folding
- the TSynPasSyn has some extensions too.
- syncompletion.pas contains a lot of additions. But nowadays I would
rewrite the whole unit. The IDE already positions and paints the completion
box. Therefore the new synedit just needs to provide some hooks and I will
write a new completion box for the IDE. I want to extend it anyway.

Of course the identifiers can be renamed and some features could work a
little bit different.
And: This time keep in sync with the official synedit with {$IFDEF LCL}.

I didn't take a closer look at unisynedit. What are the differences to the
old synedit?
As far as I can tell based on the comparison of a few units, it seems that all strings are now declared as widestring. and chars are now widechar or ansichar. There's a new unit SynUnicode.pas that implements widestring objects. For the rest it looks pretty much the same as the CVS version.

Darius



Mattias

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________
    To unsubscribe: mail [EMAIL PROTECTED] with
               "unsubscribe" as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to