# Ligatures And Features Here is the check list and explaination of Maple Mono ligatures and features. For more details, please check out `.fea` files in same directory and [OpenType Feature Spec](https://adobe-type-tools.github.io/afdko/OpenTypeFeatureFileSpecification.html). ## Usage ### VSCode Setup in your VSCode settings json file ```jsonc { // Setup font family "editor.fontFamily": "Maple Mono NF, Jetbrains Mono, Menlo, Consolas, monospace", // Enable ligatures "editor.fontLigatures": "'calt'", // Or enable OpenType features "editor.fontLigatures": "'calt', 'cv01', 'ss01', 'zero'", } ``` ### IDEA / Pycharm / WebStorm / GoLand / CLion 1. Open Settings 2. Click "Editor" 3. Click "Font" 4. Choose "Maple Mono NF" in the font menu 5. Click "Enable Ligatures" > [!note] > Enabling OpenType Feature is not supported, you need to custom build to freeze features. ## Ligatures "Enable ligature", is same as "enable `calt` feature":
::?.<#--
:::..<<!---->
?:.=<->
:?<~<-->
:?>~>->
<:~~<-
:><~>-->
:<<~~<--
<:<~~>>->
>:>-~<-<
__~-|->
#{~@<-|
#[~~~~~~~-------
#(0xA12 0x56 1920x1080>--
#?<>--<
#!</<|||
#:/>|||>
#=</><||
#_<+||>
#__+><|
#_(<+>|>
]#<*<|>
#######*>_|_
<<<*>[TRACE]
<<<>=[DEBUG]
>><=[INFO]
>>><=<[WARN]
{{>=>[ERROR]
}}==[FATAL]
{|===[TODO]
|}!=[FIXME]
{{--!==[NOTE]
{{!--=/=[HACK]
--}}=!=[MARK]
[||=[EROR]
|]<=>[WARNING]
!!<==>todo))
||<==fixme))
??==>Cl
???=>al
&&<=|cl
&&&|=>el
//=<=il
///=>=tl
/*=======ul
/**>=<xl
*/:=ff
++=:tt
+++:=:all
;;=:=ell
;;;\\ \' \.ill
..--ull
...---ll
.?<!--
### Notice - `>>` / `>>>` is smart, but much contextual-sensitive, so it may be not effect in some IDEs ([explaination](https://github.com/subframe7536/maple-font/discussions/275)). Turn on `ss07` to force enable. ## Features ### Character Varients (cvXX) - [v7.0] cv01: Normalize special symbols (`@ $ & % Q => ->`) - [v7.0] cv02: Alternative `a` with top arm, no effect in italic style - [v7.0] cv03: Alternative `i` without left bottom bar - [v7.0] cv04: Alternative `l` with left bottom bar, like consolas, will be overrided by `cv35` in italic style - [v7.1] cv05: Alternative `g` in double story style, no effect in italic style - [v7.1] cv06: Alternative `i` without bottom bar, no effect in italic style - [v7.1] cv07: Alternative `J` without top bar, no effect in italic style - [v7.1] cv08: Alternative `r` with bottom bar, no effect in italic style - [v7.5] cv09: Alternative `7` with middle bar, no effect in italic style - [v7.5] cv10: Alternative `Z` and `z` with middle bar, no effect in italic style - [v7.7] cv11: Alternative `f` with bottom bar - [v7.1] cv61: Alternative `,` and `;` with straight tail - [v7.1] cv62: Alternative `?` with larger openings - [v7.1] cv63: Alternative `<=` in arrow style - [v7.3] cv64: Alternative `<=` and `>=` with horizen bottom bar - [v7.3] cv65: Alternative `&` in handwriting style - [v7.8] cv66: Alternative pipe arrows - [v7.0] zero: Dot style `0` #### Italic Only - [v7.0] cv31: Alternative italic _`a`_ with top arm - [v7.0] cv32: Alternative Italic _`f`_ without bottom tail - [v7.0] cv33: Alternative Italic _`i`_ and _`j`_ with left bottom bar and horizen top bar - [v7.0] cv34: Alternative Italic _`k`_ without center circle - [v7.0] cv35: Alternative Italic _`l`_ without center tail - [v7.0] cv36: Alternative Italic _`x`_ without top and bottom tails - [v7.0] cv37: Alternative Italic _`y`_ with straight intersection - [v7.1] cv38: Alternative italic _`g`_ in double story style - [v7.1] cv39: Alternative Italic _`i`_ without bottom bar - [v7.1] cv40: Alternative italic _`J`_ without top bar - [v7.1] cv41: Alternative italic _`r`_ with bottom bar - [v7.5] cv42: Alternative italic _`7`_ with middle bar - [v7.5] cv43: Alternative italic _`Z`_ and _`z`_ with middle bar - [v7.7] cv44: Alternative Italic _`f`_ with bottom bar #### CN Only - [v7.0] cv96: Full width quotes (`“` / `”` / `‘` / `’`) - [v7.0] cv97: Full width ellipsis (`…`) - [v7.0] cv98: Full width emdash (`—`) - [v7.0] cv99: Traditional centered punctuations ### Stylistic Sets (ssXX) - [v7.0] ss01: Broken multiple equals ligatures (`==`, `===`, `!=`, `!==` ...) - [v7.0] ss02: Broken compare and equal ligatures (`<=`, `>=`) - [v7.0] ss03: Allow to use any case in all tags - [v7.0] ss04: Broken multiple underscores ligatures (`__`, `#__`) - [v7.0] ss05: Revert thin backslash in escape symbols (`\\`, `\"`, `\.` ...) - [v7.0] ss06: Break connected strokes between italic letters (_`al`_, _`il`_, _`ull`_ ...) - [v7.0] ss07: Relax the conditions for multiple greaters ligatures (`>>` or `>>>`) - [v7.0] ss08: Double headed arrows and reverse arrows ligatures (`>>=`, `-<<`, `->>`, `>>-` ...) - [v7.1] ss09: Asciitilde equal as not equal to ligature (`~=`) - [v7.1] ss10: Approximately equal to and approximately not equal to ligatures (`=~`, `!~`) - [v7.1] ss11: Equal and extra punctuation ligatures (`|=`, `/=`, `?=`, `&=`, ...)