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.

Raspunde prin e-mail lui