On Wednesday, 10 August 2016 02:37:38 UTC+2, Stefan Schwarzer wrote: > I recently purchased a license for PragmataPro and ran into > the same problem as Manuel. During my research I came across > his patch (many thanks, Manuel!) and I subscribed to the list > to follow the discussion on the patch and possibly > contribute to the exchange. > > Here are my thoughts on the current discussion. (I had > considered to add these "inline," but changed my mind > because I think this would make the text _less_ accessible.) > > If you want to use the ligatures in PragmataPro in GVim, > your only choice is a GVim with the patch from Manuel. > Without the patch, there's no readable text. > > As I understand it, both the original code and the patch > make an assumption about the possible characters in a > ligature, and these assumptions can still be wrong. > > The original code with its optimization was checked in about > twelve years ago. I wonder if it nowadays would be feasible > to remove the optimization altogether, i. e. replace it with > straightforward code that doesn't make a (still potentially > wrong) assumption about "valid" or "reasonable" character > combinations for ligatures. > > I'm aware that this is a trade-off. Possibly some users will > be noticeably affected by slower rendering, but on the other > hand you get simpler and more robust code. I haven't seen a > suggestion of removing the optimization yet, so I'm not sure > if it's an implicit consensus that the optimization is still > needed or if this idea didn't come to mind at all. Don't get > me wrong: I'm not even suggesting removing the optimization, > but I'm suggesting _considering_ it, even if the result of > this consideration is to keep the optimization. :-) > > Like Manuel, I noticed artifacts when moving the cursor over > ligatures. Note that the cursor movement can also happen if > the cursor isn't moved by the user, that is, if `showmatch` > is set. To reproduce this: > > - compile GVim with the patch from Manuel > - start this GVim without a file > - :set guifont=PragmataPro\ 10 > - :set matchpairs+=<:> > - :set showmatch > - insert <= >= > - press <esc> to leave insert mode > - press ctrl-L to make the ligatures render if that didn't > happen yet > - move the cursor onto the > which was just inserted > - observation: the cursor jumps to the left onto the < in > <= and the ligature is garbled (a < followed by the > right half of the <= ligature) > - expectation: the ligature isn't changed or is only changed > as long as the cursor is on it > > Regardless of the rendering issues, so far they've always > been fixed easily by pressing ctrl-L. Even with the current > imperfections, I'd rather have the patch soon in a regular > GVim version than not being able to use the ligatures at all > for a potentially long time. > > In the long run, I'm absolutely fine if the ligatures are > temporarily "decomposed" if the cursor moves over them, but > it would be nice if each ligature was rendered correctly if > the cursor doesn't cover it anymore. > > Regarding the thought that merging the patch will make users > ask for more: Yes, that's probably true. On the other hand, > not including the patch will also have users ask for more, > namely support of ligatures in programmer fonts. :-) > > Thank you all for working on Vim. I've been using it since > about 20 years and I'm very glad it exists! > > Best regards, > Stefan
Hi Stefan, thanks for giving it a try, I appreciate it! Keep that feedback coming (I'll keep reading mail), and we can hopefully make ligatures in vim happen at some point. I'll keep updating patches at the github repo I mentioned in my last mail. Cheers, Manuel -- -- You received this message from the "vim_dev" 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 --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
