Bear lacked a proper support for RTL languages and we wanted to change that! This is an initial implementation and as we’re not expert on RTL we need as much feedback as possible.
Please let us know how does it feel, if there are problems or enhancements we can make to make it pleasant for you.
Still testing, but here is an initial issue:
When starting a new line, the cursor is on the left side (should be right). However, when you start typing, the cursor and text do move back the the right as expected.
When you start a heading, the ##[space] also stays on the left until you start typing in Hebrew. I would expect that if the typing language is RTL, the cursor would move to the right even if there is still no actual RTL character.
I would suggest setting the direction of the new line by the currently selected typing language. So If I start a new line and my keyboard language is set to an RTL language (in my case, Hebrew), set cursor to Right. Otherwise, set to left.
Other then that, I’ve tested sentences with a combination of Hebrew and English and dates. Most editors fail with that - Panda has been ordering the direction very nicely so far. Im super excited for this to get to Bear.
Another thing you need to fix is the tables within RTL context.
First you give the user an option to select the writing direction of table, then if RTL is selected you reverse the order of columns and change the text alignment to be RTL.
Otherwise you’ve done an excellent job in support RTL. Thanks!
Ah! Many thanks for this insight, it’s given us something to think about in this regard. Also, thank you for the kind words! Hoping you’ve a lovely day
I’m really glad Bear is adding RTL support, I’ve been waiting for it since Bear first came out.
Here’s my initial feedback:
New line direction: Pressing Return starts the line with the indicator appearing on the opposite direction (LTR), until I start typing then it converts to the correct direction (RTL). It should start with the indicator blinking on the current typing language direction, which is RTL in this case.
New Table: Adding a new table while writing in RTL/Arabic inserts the table on the LTR direction, and when I write inside the table the Columns Alignment is set to (Left) by default. When writing in RTL/Arabic a new Table should appear on the right side with the default Columns Alignment set to Right.
I’ll report new feedback as I continue testing Panda.
Thank you for implementing basic RTL features! I’ve been waiting so long for this!
There is something that should be changed, though: RTL support is not only needed for documents that are in a RTL language like Hebrew or Arabic, where the whole document is starting at the right margin, but also for LTR languages like English or German.
If the main language of a document is LTR, the cursor has to stay on the left margin, even if the first word of a paragraph is a RTL word.
There is an easy solution to this (I’ve been through this with a few other developers before): Let the user define if the main direction is LTR or RTL (per document would be best).
There is no way to set a document LTR or RTL as that information has no place to be stored, so I’m still trying to understand how correctly implement this. There are some unicode characters that can be embedded in the text to force the writing direction, I’m studying how to use those to achieve what you want.
Some developers achieve this by implementing a checkbox in the preferences to let the user decide how the documents are to be displayed generally, LTR (for the most users) or RTL (for all users with a RTL language as their first language). That would be a solution for all documents only, though. Then the Apple NSTextField context menu for the writing direction could be a solution for those documents that need different handling.
Really happy to see that rtl support is on the work. I tested it and works fine, apart from the issue on the tables that was highlighted by another tester.