* Ben Schmidt <[email protected]> [20/02/11 03:21]: > On 20/02/11 4:12 AM, Moshe Kamensky wrote: > > Hi There, > > > > I am interested in writing bidirectional text in Vim. I realise, from > > previous discussions on the list, the it would be difficult to support > > the bidi standard in Vim. However, I was wondering if a more manual > > approach would be easier to implement. What I had in mind was to extend > > the syntax highlighting system, to allow specifying the direction of a > > syntax region. This would mean that the direction of a character is > > determined by its syntax group, so no implementation of the bidi > > algorithm is necessary. Of course, displaying a string in the correct > > direction is more complicated than highlighting with a given colour, but > > perhaps it is easy enough (I'm not familiar with the code). > > > > If this can be done, I think it will solve most practical problems, > > since when editing latex, for example, text in different direction will > > appear in particular commands or environments. > > > > Thanks, > > Moshe > > I like the idea of bidi in Vim, but I'd rather see it done right or not done > at > all. We don't need another hacky half-job which will end up with workarounds > built > on top of workarounds etc.. We have too many of those already. > > Just my $0.02. > > Ben. >
Of course I also would prefer to have full bidi support, but I can also see that this would require some serious changes and complications in the code, and even if this is done, there will probably be a rather serious performance penalty (for instance, the full bidi algorithm works on whole paragraphs, so you would have to compute something for the whole paragraph for every keystroke). I also don't see that what I'm suggesting is a hack or a workaround. It could actually be part of a general mechanism: for instance, the highlight or the syntax command could take a function as an optional argument. This function will be called with the start and end of the corresponding region (and maybe other arguments) and will output a new string to be displayed instead of the original one. This way the reversing can be done in Vim language (and you could use this system for other purposes, for instance capitalise all text in the region). Moshe -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
