- Notifications
You must be signed in to change notification settings - Fork3
An xterm.js addon that provides font ligature support
License
xtermjs/xterm-addon-ligatures
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Add support for programming ligatures toxterm.js when running inenvironments with access toNode.js APIs (such asElectron).
- Node.js 8.x or higher (present inElectron 1.8.3 or higher)
- xterm.js 4.0.0 or higher using the default canvas renderer
Install in your project by running:
npm install xterm-addon-ligaturesThen, modify the location where you initialize the terminal to enable ligaturesupport after opening. If you enable ligatures prior to opening the terminal,they will not function properly.
Your code should look something like this:
import{Terminal}from'xterm';import*asligaturesfrom'xterm-addon-ligatures';Terminal.applyAddon(ligatures);constterminal=newTerminal();terminal.open(document.getElementById('terminal-mount'));terminal.enableLigatures();
If you use TypeScript, you will need to cast the terminal variable asany whenyou enable ligatures because TypeScript does not know that the addon isavailable on the terminal object. It will look like this:
(terminalasany).enableLigatures()
Alternatively, you can import the addon directly as a function and pass theterminal as an argument:
import{Terminal}from'xterm';import{enableLigatures}from'xterm-addon-ligatures';constterminal=newTerminal();terminal.open(document.getElementById('terminal-mount'));enableLigatures(terminal);
In a browser environment, font ligature information is read directly by the webbrowser and used to render text correctly without any intervention from thedeveloper. As of version 3, xterm.js uses the canvas to render charactersindividually, resulting in a significant performance boost. However, this meansthat it can no longer lean on the browser to determine when to draw fontligatures.
This package locates the font file on disk for the font currently in use by theterminal and parses the ligature information out of it (via thefont-ligatures package). As text is rendered in xterm.js, this packageannotates it with the locations of ligatures, allowing xterm.js to render itcorrectly.
Since this package depends on being able to find and resolve a system font fromdisk, it has to have system access that isn't available in the web browser. As aresult, this package is mainly useful in environments that combine browser andNode.js runtimes (such asElectron).
This package makes use of the following fonts for testing:
- Fira Code -Licensed under the OFL by NikitaProkopov, Mozilla Foundation with reserved names Fira Code, Fira Mono, andFira Sans
- Iosevka -Licensed under the OFL by Belleve Invis withreserved name Iosevka
About
An xterm.js addon that provides font ligature support
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors4
Uh oh!
There was an error while loading.Please reload this page.