Comments (10)
Yes indeed, it seems that eovim is currently broken with < 0.4.
from eovim.
I'm afraid that the GUI widget I'm using (evas textgrid) does not support ligatures :/
from eovim.
From what I understand of ligatures support, the editor should detect by itself pattern such as ->
and seamlessly replace it with another text glyph (such as →) for the user to see. Since this is monospaced, the width of the new glyph shall be equal to the sum of the widths of the original pattern (so here, a total width of 2).
This is where evas textgrid gets in the way... it should be able to render (at most) double width characters, but it does not seem to actually be implemented... so it seems that every glyph is always represented with a width of 1...
Unfortunately, evas textgrid is a key component of eovim's UI... so it either needs in-depth patching in core EFL, or be replaced.
from eovim.
Thank you for response. I'm surprised that EFL doesn't provide ligature support in a text widget, I thought it uses harfbuzz
, or is my understanding of the problem to shallow and I missed something?
from eovim.
The textgrid can display ligatures (what I understand are just different glyphs, that should span on multiple columns). However, it seems there is no support in the textgrid widget for multiple-width characters.
The textgrid causes each glyph to be rendered on exactly one cell, which causes large glyphs not to be of the appropriate size, and to be tiny. FOr example, in the image attached, you can see that the arrow →
that should ideally take two columns to "match" the width ->
will alway uses only one column.
from eovim.
@jeanguyomarch
I think you are testing it wrong. The unicode →
sign is correctly only 1 char wide. You need to install some NerdFont variant i.e. fira-code. When using a specific font it will replace a '->' with an arrow which is actually two characters wide.
from eovim.
https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode
from eovim.
Maybe I'm missing something, but I've tried this with FiraCode, but it yields the same result. I do not think it is the font that makes the substitution. From what I've seen in projects that implement support for automatic ligatures replacement, such as terminal emulators or code editors, it requires explicit support from the program. Here, I think eovim should detect specific patterns such as ->
to replace it by a prettier glyph, that the font provides.
My problem with the textgrid is that I cannot use it to render glyphs that span on more than one column, because unfortunately, it does not seem to be implemented. This would not be the first limitation of the textgrid, as it lacks "undercurl" for example.
from eovim.
For details, there is also now a dedicated wiki page
from eovim.
@jeanguyomarch Awesome. Thank you for putting work in to it.
Do I need neovim >4 to use the current HEAD?
from eovim.
Related Issues (20)
- Probably an EFL issue - can't specify size of bitmapped fonts. HOT 1
- OpenSUSE Tumbleweed support HOT 2
- Can't load plugins HOT 2
- Use of --headless HOT 1
- neovim >=0.3.2 not working HOT 5
- eovim crashes when I run :checkhealth HOT 1
- Bindings for control+shift send control instead HOT 2
- no effect when setting guifont HOT 4
- Executable cannot find its installed libraries on 64bit OS X HOT 2
- Platform 'Debian GNU/Linux' is not supported by the setupt script. HOT 2
- Broken support for nvim < 0.4
- seg fault at start HOT 6
- Unusable on HiDPI display HOT 4
- Conform to fontconfig spec.
- Vertical alignment issue with splits, impacted by font weight setting HOT 4
- Theming HOT 1
- defining theme instead of passing it as parameter? HOT 2
- Segfault in a test completion HOT 7
- Unable to set guifont as normal HOT 2
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 eovim.