[Lazarus] Arabic beta tester for SynEdit needed
patspiper
patspiper at gmail.com
Sat Dec 8 17:27:50 CET 2012
On 07/12/12 16:58, Martin wrote:
> Did you use "Extra Char Spacing" = 1 ? This is what happens, if not!
> (This and a few other real oddities)
>
> And also, it can only be tested on windows. Because on GTK,QT,Carbon
> "Extra Char Spacing" is faulty in an other way: It splits the
> combining chars into individuals, but since SynEdit does not know.....
>
> The problem is, that by current design, SynEdit has to calculate the
> pixel pos of each char on it's own.If it does not calculate the same,
> as the OS did when painting (SymEdit gives the OS tokens, fragments of
> the line or the whole line) then obviously things will be odd afterwards.
>
>> - Long connecting lines are not what I would like, but this is a
>> monospaced font afterall.
> Ok, but can you test them on windows, with "Extra Char Spacing" = 1
I use Ubuntu, and tested only monospaced fonts (source editor). I
understand extra char spacing is for Windows only.
To test proportional fonts, I put a TSynEdit on a form, set the font to
Arial, but the characters were all detached. Did I miss something here?
>
> See that the caret pos is treadet correct, backspace and delete,
> insert work (on the correct char) on them, Copying a selection will
> copy the highlighted part (except column mode selection, which is not
> done yet)
Column selection is fantastic for coding, but is not a prime feature for
Arabic at this stage.
>
> About editing. (backspace and delete, insert)
> - combining chars see below.
> - ligatures. Caret and selection-wise the ligature, and the
> long-connecting-line, are both treaded as one char. One is the 1st,
> the other the 2nd char of the ligature (in the order they occur in
> text). The behaviour for editing should reflect this. Does it.
>
>
>> - The 456 should have come to the left of the Arabic words.
>
> Ok, that could dbe fixed. Depends on treating digits as weak or strong
> LTR. Actually in this case, depends on treating the line end as such)
>
> If the 456 were embedded in the middle of arab, it would have worked.
> But they border the EOL, and SynEdit treats the EOL strong LTR (and
> bordering weak 456 follows). This gives better result for pascal,
> where Arab occurs in strings. "a:='arab';" The '; in the end will and
> should be LTR due to bordering the EOL.
OK
>
> This will be fixed eventually, when weak handling is made highlighter
> depending
>
>> - If you put a shaddah or damma on a character, it gets displayed on
>> top of the character (correct behaviour). Pressing backspace at this
>> stage should only delete that addition, and not the character.
> Ok, Also simple to fix. Not a painting issue so.
>
> Those are combining codepoints. So backspace must act on codepoints.
>
> The editor understands the diff between "Char" and "codepoint". It is
> a question of assigning the right choice to each action (and that is a
> question of writing testcases too)
>
>
> ----------------------
> About "Long connecting lines are not what I would like."...
Longer connecting lines for monospaced fonts is acceptable especially
that the characters have a fixed width. But it is less tolerable with
proportional fonts.
>
> I understand. And it would not be the final solution. But if all else
> works (as described above) then this is a solution, that I believe, I
> can reach without too much extra work from where I am now (Will still
> be next year...).
>
> And then we had something at least use-able.
>
> The rest will be on my todo list, and has to await it's time, between
> other features and debugger.
Excellent work!
Stephano
More information about the Lazarus
mailing list