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 -- -- 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.
