[Lazarus] Arabic beta tester for SynEdit needed

Martin lazarus at mfriebe.de
Thu Dec 13 15:39:03 CET 2012


On 08/12/2012 18:02, Martin wrote:
> On 08/12/2012 16:27, patspiper wrote:
>> On 07/12/12 16:58, Martin wrote:
>>> 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.
> On GTK, it will break either way.
>
> The whole think can currently only be tested on windows.

Ok, bad news, I did some more testing myself, and it turns out, that 
WIndows allocates the extra space (song connection line) just anywhere 
in the word, or at the end of it, but not always where the ligation is.



The problem is synEdit expects the chars (3+1 ligate = 8 chars) *evenly* 
distributed (every n pixel). So if the caret is placed at the begin of 
the line , SynEdit expects a char there, and then n pixel further the 
next...
If you edit (insert, delete) at those points SynEdit will act as if the 
char it expected had been there. And that in (a far as I can see) not 
really useable.

Anyway on windows this is now the current behaviour. (*NO* "Extra char 
spacing" needed any more).
(Note: instead of the long line, you may get empty spaces, at word 
borders (including letter to digit changes))

On GTK, QT, and carbon, the widgetset drawing support does not deal with 
that, so results are even worse.
If windows had worked better, the plan was to try and fix them (Though I 
am not sure about doing QT or carbon myself). Now I am not sure, how 
much sense this makes...

As for other RTL behaviour (none drawing related):
- I fixed backspace for combining
- If you find an combining chars that do not work, maybe they got missed 
(SynEdit has it's own list). Let me know, I will check, and add them, 
(adding is easy, finding takes the time).
   This is Arabic ONLY, other combining have not yet added (planned, no 
need to report, I do know already)
- As for the treatment of weak chars (e.g. digits being part of the RTL 
or LTR run. This is still beta. It has flaws, I know, no need to report.
- tabs in RTL, are probably not handled very smart. If you know a good 
algorithm... However, this will be very low prior.
- Column mode selection, is *not* implemented at all (normal selection 
will work)
- Caret, if between a RTL and LTR run, is always placed next to the LTR 
char. I know there a many smarter ways to do this, but low prior.
- Anything else, that needs improvement or fixing: let me know.


So what's next.
The only way to support this, is to make SynEdit aware of the ligatures. 
And that is a lot of work, so it will take more time. And I don't yet 
know when I will schedule it....


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20121213/31c4adfd/attachment-0003.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jjhfaiaf.png
Type: image/png
Size: 702 bytes
Desc: not available
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20121213/31c4adfd/attachment-0003.png>


More information about the Lazarus mailing list