Skip to content

unicode combining characters rendering issues #1172

Closed

Description

@ntessore

Describe the bug

At some point during the last couple of updates, an issue appeared with rendering unicode combining characters, in particular diacritics/accents. Take the combination x⃗ [U+0078 U+20d7] which now renders as in screenshot 1 (note the x is in column 1). Turning off the Core Text Renderer restores the correct rendering as in screenshot 2.

Edit: It works fine in snapshot 166.

To Reproduce
Copy x⃗ from here and paste it into MacVim.

Expected behavior
Render x⃗.

Screenshots

MacVim default:

image

Core Text Renderer disabled (or using snapshot 166):

image

Environment (please complete the following information):
macOS 11

$ mvim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 19 2020 21:23:05)
macOS version
Included patches: 1-2164
Compiled by root@Mac-1608412769109.local
Huge version with MacVim GUI.  Features included (+) or not (-):
+acl               +file_in_path      -mouse_sysmouse    -tag_old_static
+arabic            +find_in_path      +mouse_urxvt       -tag_any_white
+autocmd           +float             +mouse_xterm       -tcl
+autochdir         +folding           +multi_byte        +termguicolors
-autoservername    -footer            +multi_lang        +terminal
+balloon_eval      +fork()            -mzscheme          +terminfo
+balloon_eval_term +fullscreen        +netbeans_intg     +termresponse
+browse            +gettext           +num64             +textobjects
++builtin_terms    -hangul_input      +odbeditor         +textprop
+byte_offset       +iconv             +packages          +timers
+channel           +insert_expand     +path_extra        +title
+cindent           +ipv6              +perl/dyn          +toolbar
+clientserver      +job               +persistent_undo   +transparency
+clipboard         +jumplist          +popupwin          +user_commands
+cmdline_compl     +keymap            +postscript        +vartabs
+cmdline_hist      +lambda            +printer           +vertsplit
+cmdline_info      +langmap           +profile           +virtualedit
+comments          +libcall           +python/dyn        +visual
+conceal           +linebreak         +python3/dyn       +visualextra
+cryptv            +lispindent        +quickfix          +viminfo
+cscope            +listcmds          +reltime           +vreplace
+cursorbind        +localmap          +rightleft         +wildignore
+cursorshape       +lua/dyn           +ruby/dyn          +wildmenu
+dialog_con_gui    +menu              +scrollbind        +windows
+diff              +mksession         +signs             +writebackup
+digraphs          +modify_fname      +smartindent       -X11
+dnd               +mouse             -sound             -xfontset
-ebcdic            +mouseshape        +spell             +xim
+emacs_tags        +mouse_dec         +startuptime       -xpm
+eval              -mouse_gpm         +statusline        -xsmp
+ex_extra          -mouse_jsbterm     -sun_workshop      -xterm_clipboard
+extra_search      +mouse_netterm     +syntax            -xterm_save
-farsi             +mouse_sgr         +tag_binary        
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "$VIM/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/Applications/MacVim.app/Contents/Resources/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe  -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -arch x86_64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -Wall -Wextra -Wshadow -Werror -Wno-error=missing-field-initializers -Wno-error=deprecated-declarations -Wno-error=unused-function       
Linking: clang   -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib  -arch x86_64 -L/usr/local/lib -o Vim        -lm  -lncurses -liconv /usr/local/lib/libintl.a -framework AppKit   -fstack-protector  -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE 

Additional context
Use a font that can render the glyph.
See below.

Activity

  1. ychin commented on Mar 1, 2021

    @ychin
    Member

    I can reproduce this but need to look into what a valid fix is.

  2. added
    RendererText rendering issues, including CoreText renderer
    on Mar 1, 2021
  3. added this to the snapshot-171 milestone on Mar 8, 2021
  4. ntessore commented on Jul 9, 2022

    @ntessore
    Author

    Is it possible that this only occurs when the selected guifont does not support the combining character, and a fallback is used?

    Compare Menlo which falls back to a different x with the vector arrow:

    image

    And JuliaMono which has support for the vector arrow:

    image

  5. ntessore commented on Jul 18, 2022

    @ntessore
    Author

    @ichizok Could this be related to #680?

  6. modified the milestones: Release 174, Release 175 on Sep 12, 2022
  7. added 2 commits that reference this issue on Jan 21, 2023
    0af2e17
    202e79b
  8. added 2 commits that reference this issue on Jan 29, 2023
    6e3cce1
    fe2305d
  9. added a commit that references this issue on Feb 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    RendererText rendering issues, including CoreText renderer

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions