All notable changes to this project will be documented in this file.
Unicode:
∑
U+2211 N-ARY SUMMATION #1083≁ ≂ ≃ ≄ ≅ ≆ ≇ ≉ ≊ ≋
#1090⊜
, U+1F10D 🄍
, U+1F10E 🄎
, U+1F10F 🄏
, U+1F16D 🅭
, U+1F16E 🅮
, U+1F16F 🅯
, U+1F1AD 🆭
#1070⟲⟳⟴⟵⟶⟷⟸⟹⟺⟻⟼⟽⟾⟿
#1109 #1123∎
#1115�
#1137, thanks @gjvnq
#1182∷
#1219↪
#1307
Changed:
Removed:
>>=
<<=
||=
|=
are not combined with equal sign by default. Old behavior is moved into ss09
#974|
by default, long one moved to cv30
#843 #1160.-
into cv25
#670 #860 #1103.=
into cv32
#670wght=450
) #1318Added (variants):
a
cv01
#949g
cv02
#886i
cv03
-cv06
l
cv07
-cv10
#8990
cv11
-cv13
3
cv14
*
cv15
*
cv16
#708 #1134~
cv17
%
cv18
<=
with a horizontal bar cv19
<=
as an arrow cv20
#34 #696 #858=<
as less than or equal cv21
#34=<
as less than or equal with horizontal bar cv22
#34>=
with a horizontal bar cv23
/=
as not equals cv24
#125:-
to cv26
#790[]
as cv27
{. .}
as cv28
#875 #635 #409 #279 #264 #214{}
cv29
Fl
Tl
fi
fj
fl
ft
as ss10
()
cv31
#1198╱
U+2572 ╲
U+2573 ╳
#929∶
#926⸺
, U+2E3B 3-em dash ⸻
#1019⎈
single-width #1036=/
because of conflicts with paths PATH=/...
#1056//=
=//
=//=
#816↰ ↱ ↲ ↳
, U+2770..U+2771 ❰ ❱
#1032⟸
U+27F9 ⟹
U+27FA ⟺
U+27FD ⟽
U+27FE ⟾
U+27FF ⟿
that were broken in v4 #1067ss08
that adds gaps to ==
===
!=
!==
#187 #383Removed 44 individual arrow ligatures, replaced with four universal, combinative substitutions. 100-150% faster shaping performance, infinite amount of arrow combinations.
Џ
Ӌ
, U+04CC ӌ
#1001 and U+0449 щ
#1007|||
to prevent partial ligatures in |||-|||
|||=|||
#346ҳ
U+04CB Ӌ
and U+04CC ӌ
[#995]ϴ
[#996][-> [--> [---> [=> [==> [===>
[#968]ℂ
U+210D ℍ
U+2115 ℕ
U+2119 ℙ
U+211A ℚ
U+211D ℝ
U+2124 ℤ
and U+1D539 𝔹
[#841]?:
[#970]∀
U+2203..U+2205 ∃ ∄ ∅
U+2207 ∇
U+2282..U+228B ⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉ ⊊ ⊋
U+2208..U+220# ∈ ∉ ∊ ∋ ∌ ∍
U+222A ∪
[#822]「」
and U+FF62 U+FF63 Halfwidth Corner brackets 「」
[#940]<<->>
[#919]fl
Fl
Tl
ligatures, adjusted l
height in combination with [F T I f]
instead [#902]▤▥▦▧▨▩
[#450]ss03
[#831]<!--
[#917]0xFF
and 10x10
with combination of onum
and zero
[#888]<$
$>
<$>
when ss04
is active [#830]ss19
and ss20
(they are covered by zero
and onum
)=~
and !~
to ss07
[#293]~=
[#381]..=
with just a subtle spacing adjustment [#934]☰☱☲☳☴☵☶☷
(Bagua trigrams) [#859]<?=
(?=
after <
) [#850]◟
and U+25DF ◞
were swapped [#761]╭
U+256E ╮
U+256F ╯
U+2570 ╰
[#349] [#702] [#714] [#725]⟨
U+27E9 ⟩
[#763]┄┅┆┇┈┉┊┋
[#702]╌╍╎╏
Ӻ
and U+04FB ӻ
[#806]≢
[#396]ẞ
[#587]⁄
[#588] and U+2215 Division Slash ∕
[#805]ᐅ
and U+140A Canadian Syllabics A ᐊ
[#666]∴
and U+2235 Because ∵
[#669]Added U+239B..U+23AD multi-line brackets [#675]
⎛ 1 ⎞ ⎡ a ⎤ ⎧ x ⎫
⎜ 2 ⎟ ⎢ b ⎥ ⎪ y ⎪
⎜ 3 ⎟ ⎢ c ⎥ ⎨ z ⎬
⎜ 4 ⎟ ⎢ d ⎥ ⎪ y ⎪
⎝ 5 ⎠ ⎣ e ⎦ ⎩ x ⎭
Added U+27F0..U+27FF Supplemental Arrows-A ⟲⟳⟰⟱⟴⟵⟶⟷⟸⟹⟺⟻⟼⟽⟾⟿
[#677]
Added U+2400..U+2426 Control Pictures ␆␈␇␣␢␘␍␐␡␥␔␑␓␒␙␃␄␗␅␛␜␌␝␉␊␕␀␞␏␎␠␁␂␚␦␖␟␋
[#764]
Added U+2388 Helm Symbol ⎈
[#766]
Added U+2016 Double Vertical Line ‖
[#780]
Tuned metrics (1870,-530 -> 1800,-600, upm 2000 -> 1950, hopefully fix [#241] [#252] [#459] [#552] [#798])
Box characters to not overflow line height, taller |
[#449]
Added few technical symbols [#799]:
↩
⇞
⇟
⇤
⇥
⌀
⌃
⌄
⌅
⌆
⌘
⌤
⌥
⎇
⎋
⏏
Added Coq logical and /\
and logical or \/
ligatures, U+2227 ∧
and U+2228 ∨
[#191] [#488] [#738] [#810]
Added SystemVerilog |->
|=>
and <-|
<=|
for symmetry [#695]
Added Forces ||-
ligature and U+22A2..U+22AF ⊢ ⊣ ⊤ ⊥ ⊦ ⊧ ⊨ ⊩ ⊪ ⊫ ⊬ ⊭ ⊮ ⊯
[#709]
Added fl
Fl
Tl
ligatures, adjusted fi
fj
pairs [#795]
Disabled ligatures after regexp lookahead/lookbehinds (?<=<
(?<=>
(?<==>
(?<=|
(?<==
(?=:=
(?=!=
(?==
(?===
(?==>
(?=>
(?=>>
(?=<<
(?=/=
(?!!
(?!!.
(?!=
(?!==
(?<!!
(?<!!.
(?<!=
(?<!==
(?<!--
[#578]
Removed ..=
[#757]
Alternatives (stylistic sets):
<=
>=
in Light and Bold caused during [#483]<==>
([#392]), #:
([#642]), !!.
([#618]), >:
:<
([#605]), U+0305 Combining overline ([#608]), U+2610 Ballot box, U+2611 Ballot box with check, U+2612 Ballot box with x ([#384])[
**
([#607]){|
|}
[|
|]
([#643]){.
.}
([#635]), thin backslash ([#577])(?=
(?<=
(?:
([#624]), >=<
([#548]), {|}
[|]
([#593])<||>
([#621]), :>=
([#574]), <<*>>
<<<*>>>
<<+>>
<<<+>>><<$>><<<$>>>([#410]),
!=<` ([#276])╵
and ╷
([#595])<=
>=
to align with <
>
([#483]):
near {[()]}
([#486])\\
, removed \\\
([#536]):>
([#547]) and <:
([#525])=<
([#479] [#468] [#424] [#406] [#355] [#305])::=
([#539])[|
|]
([#516]) {|
|}
([#330])✓
(U+2713)..=
([#433])=!=
([#338])|-
-|
_|_
and adjusted |=
||=
([#494])#=
([#208])U+25B6
(black right-pointing triangle) and U+25C0
(black left-pointing triangle) (#289)##
###
####
to make them easier to tell apart (#287){.
.}
(#279)U+2206
(#174, #298)>->
<-<
(#297)?.
.?
?:
(#215)<~>
(#179, used in IntelliJ for collapsed methods)||>
|||>
<||
<|||
(#184)#!
(#169, #193){.
.}
[.
.]
(.
.)
(#264)[]
(#92) {-
-}
(#248)/**
**/
and disabled ligatures for /*/
*/*
sequences (#219)]#
{.
.}
[.
.]
(.
.)
(#214)!!!
???
;;;
&&&
|||
=~
#167 ~~~
%%%
calt
code that doesn’t apply ligatures to long sequences of chars, e.g. !!!!
, >>>>
, etc (#49, #110, #176)+
-
*
and corresponding ligatures (#86)x
(0xFF
) is now applied to sequences like 128x128
as well (#161)##
###
####
(#107)</>
(#147)<=
>=
(#117):
, -
, *
and +
occurs----
would incorrectly render as <!--
):
(between digits, e.g. 10:40
)-
, *
and +
(only between lowercase letters, e.g. kebab case var-name
, pointers *ptr
etc)Added weights:
Switched to calt
instead of liga
. You can now “step inside” the ligature in text editors.
Fira Code is now drawn and built in Glyphs 2 app (should improve compatibility).
Added:
<->
<~~
<~
~~~
~>
~~>
<$
<+
<*
*>
+>
$>
;;;
:::
!!!
???
%%
%%%
##
###
####
.-
#_(
=<
**/
0x
www
[]
Redrawn:
{-
-}
~=
=~
=<<
>>=
<$>
<=>
.=
Removed: ?:
Total ligatures count: 115
Redrawn from Fira Mono 3.204 (slightly heavier weight)
Added:
**
***
+++
--
---
?:
/=
/==
.=
^=
=~
?=
||=
|=
<<<
<=<
-<<
-<
>-
>>-
>=>
>>>
<*>
<|>
<$>
<+>
<!--
{-
-}
/**
\\
\\\
..<
??
|||
&&&
<|
|>
Added support for Powerline
Added: #{
~-
-~
<==
==>
///
;;
</
~=
~~
#[
&&
and ||
to more traditional look===
and !==
are now rendered with 3 horizontal barsAdded: ~@
#?
=:=
=<
Fixed width of &&
and ||
Added: -->
<--
&&
||
=>>
=/=
>>=
=<<
<<=
->>
->
=>
<<-
<-
===
==
<=>
>=
<=
>>
<<
!==
!=
<>
:=
++
#(
#_
::
...
..
!!
//
/*
*/
/>