Comments (9)
I think the problem lies with my terminal emulator kitty
...
I am sorry for not having investigated this earlier. I just installed alacritty
and it does not suffer from this issue. I will take my issue to kitty
then 👍
Sorry for the spamming and re-raising of this issue
from nvim-web-devicons.
I realize that the information should really also be here for documentation purposes. Thus, here is the example to reproduce the issue:
Try for example opening the following file:
Text before TeX character:
test ﭨ
Text after TeX character (with a separating space):
ﭨ test
Text after TeX character (withOUT a separating space):
ﭨtest
Here is a screenshot of the results:
The editors are:
- Top left:
nvim test.tex
- Bottom left:
nvim --noplugin --clean test.tex
- Top right:
\vim test.tex
- Bottom right:
\vim --noplugin --clean test.tex
System: Linux 5.10.16-arch1-1
Neovim: NVIM v0.5.0-dev+1094-gd623400ca
Vim: VIM - Vi IMproved 8.2; Included patches: 1-2489
from nvim-web-devicons.
Hi again,
i can say again that the issue does not come from this plugin. Try using this and you'll see how the text icon and following text renders properly.
I'm not sure what's the issue in your screenshot which shows 4 perfectly similar buffers :/
from nvim-web-devicons.
Hi! Thanks for the reply. I will check out your other project! Might be a while before I get to it thought as I am rather busy lately.
I also just noticed the same issue as above for the svg
icon... I was wondering whether it may be some "reverse text unicode char" which gets triggered when not properly considering the icon as double width. But I really am no expert on this...
from nvim-web-devicons.
unicode characters can be 2, 3 or 4 bytes long, usually you should print out the correct number of bytes or else it might do some unusual things. But vim/nvim should handle that by itself properly (it's just utf-8 after all), not sure if dirvish does some funky stuff with the output ^^
from nvim-web-devicons.
But since the examples I posted above reproduce the issue in plain vim/nvim, should I rather raise the issue there?
That is completely independent of the dirvish..
from nvim-web-devicons.
I cannot reproduce this issue on linux, neovim latest build. Which neovim version do you have ?
from nvim-web-devicons.
I just did a fresh compilation and installation of Neovim's master branch. Copying the contents of the example in my first comment on this issue still produces the same problem.
Here is the output of :version
:
:version
NVIM v0.5.0-dev+1174-g9f5c8226b
Build type: Debug
LuaJIT 2.1.0-beta3
Compilation: /usr/bin/cc -g -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -D
MIN_LOG_LEVEL=1 -I/home/max/Installations/neovim/build/config -I/home/max/Installations/neovim/src -I/home/max/Installations/neovim/.deps/usr/include -I/usr/include -I/home/max/Installations/neovim/build/src/nvim/auto -I/home/max/Installations/neovim/build/include
Compiled by max@ArchThinkPad
Features: +acl +iconv +tui
See ":help feature-compile"
system vimrc file: "$VIM/sysinit.vim"
fall-back for $VIM: "/home/max/.local/share/nvim"
Run :checkhealth for more info
Update: I also tested Vim again and the same issue there. Here is its version (Arch package, not from master):
:version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Feb 09 2021 23:51:55)
Included patches: 1-2489
Compiled by Arch Linux
Huge version with GTK3 GUI. Features included (+) or not (-):
+acl ++builtin_terms +cmdline_info +diff -farsi -hangul_input +langmap +mksession +mouse_sgr +num64 +profile +signs +tag_binary +textobjects +virtualedit +writebackup
+arabic +byte_offset +comments +digraphs +file_in_path +iconv +libcall +modify_fname -mouse_sysmouse +packages +python/dyn +smartindent -tag_old_static +textprop +visual +X11
+autocmd +channel +conceal +dnd +find_in_path +insert_expand +linebreak +mouse +mouse_urxvt +path_extra +python3/dyn +sound -tag_any_white +timers +visualextra -xfontset
+autochdir +cindent +cryptv -ebcdic +float +ipv6 +lispindent +mouseshape +mouse_xterm +perl/dyn +quickfix +spell +tcl/dyn +title +viminfo +xim
-autoservername +clientserver +cscope +emacs_tags +folding +job +listcmds +mouse_dec +multi_byte +persistent_undo +reltime +startuptime +termguicolors +toolbar +vreplace -xpm
+balloon_eval +clipboard +cursorbind +eval -footer +jumplist +localmap +mouse_gpm +multi_lang +popupwin +rightleft +statusline +terminal +user_commands +wildignore +xsmp_interact
+balloon_eval_term +cmdline_compl +cursorshape +ex_extra +fork() +keymap +lua/dyn -mouse_jsbterm -mzscheme +postscript +ruby/dyn -sun_workshop +terminfo +vartabs +wildmenu +xterm_clipboard
+browse +cmdline_hist +dialog_con_gui +extra_search +gettext +lambda +menu +mouse_netterm +netbeans_intg +printer +scrollbind +syntax +termresponse +vertsplit +windows -xterm_save
system vimrc file: "/etc/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "/etc/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: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/lzo
-I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cloudproviders -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/at-spi-2.0 -pthread -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY
_SOURCE=1
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.32/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -L/usr/local/lib -Wl,--as-needed -o vim -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-
gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lelf -lcanberra -lacl -lattr -lgpm -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.32/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/5.32/core_perl/CORE
-lperl -lpthread -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm
from nvim-web-devicons.
@kyazdani42 I did some investigation on this.
I don't think the problem is with terminal emulators. The issue is that some of the icons switch the active direction of text to RTL and affects the surrounding text. Unicode introduced direction isolates specifically to help with this issue.
I've verified that if the icon text is surrounded with LTR isolate markers, then the icons will no longer mess up the rendering of surrounding text if the terminal emulator properly applies the bidi algorithm (modern terminal emulators do). Isolates specifically do not affect the direction of the surrounding text so this won't affect rendering if the icon appears in RTL text.
Maybe the icons that use codepoints that are designated as RTL (Tex, SVG, etc) should have LTR isolate markers around the unicode codepoint. This would involve something like:
["tex"] = {
icon = "<U+2066>ﭨ<U+2069>", -- actual utf-8 encoded codepoints instead, this is for demonstration
color = "#3D6117",
name = "Tex"
};
...
Would you like me to open a new issue for this? What do you think?
from nvim-web-devicons.
Related Issues (20)
- Cannot override some icons by filename HOT 7
- TeX icon incorrect HOT 1
- [QUESTION]: how to add custom icon to laravel blade files HOT 4
- Invalid highlight name HOT 15
- change only icon color HOT 1
- W18 invalid character in a group name HOT 2
- Default icon is not working correctly HOT 12
- FR: differentiate `.d.ts` from `.ts` files (typescript) HOT 3
- Add known issue to README
- Custom icons not working on latest nvim nightly HOT 7
- Gulpfile and Gruntfile incorrect icon HOT 12
- Add issue template HOT 6
- Cannot override Lua icon color HOT 9
- Add gleam icon HOT 2
- Feature: Allow setup to be run multiple times
- set_icon not work HOT 3
- Cannot install nvim-web-devicons properly on Nvim 0.7.2 HOT 2
- feat: Allow overrides by patterns HOT 1
- Make files in `diagnostics` use `TroubleFileName` color HOT 2
- Issue with file extension matching
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nvim-web-devicons.