Personal Open source Business Explore Pricing Blog Support This repository Sign in Sign up
tonsky / FiraCode Watch 282 Star 9,014 Fork 255
Code Issues 74 Pull requests 1 Projects 0 Wiki Pulse Graphs
Monospaced font with programming ligatures
145 commits 1 branch 15 releases 32 contributors OFL-1.1
master New pull request Find file Clone or download
lf- committed with tonsky Add mintty to the ligatures-unsupported list (#284) Latest commit d7dbc2d 16 days ago
distr Version 1.203 (added `__`, closes #120) a month ago
showcases Version 1.203 (added `__`, closes #120) a month ago
.gitignore - Removed `!!!` `???` `;;;` `&&&` `|||` `=~` (closes #167) `~~~` `%%%` 3 months ago
FiraCode.glyphs Version 1.203 (added `__`, closes #120) a month ago
LICENSE version 0.6 a year ago
README.md Add mintty to the ligatures-unsupported list (#284) 16 days ago
gen_calt.clj Removed `/**` `**/` and disabled ligatures for `/*/` `*/*` sequences … 2 months ago
release.sh removed Retina weight from webfonts 3 months ago
README.md
Fira Code: monospaced font with programming ligatures
Problem
Programmers use a lot of symbols, often encoded with several characters. For the human brain, sequences like -> , <= or := are single logical tokens, even if they take two or three characters on the screen. Your eye spends a non-zero amount of energy to scan, parse and join multiple characters into a single logical one. Ideally, all programming languages should be designed with full-fledged Unicode symbols for operators, but that’s not the case yet.
Solution
Download v1.203 · How to install · News & updates
Fira Code is an extension of the Fira Mono font containing a set of ligatures for common programming multi-character combinations. This is just a font rendering feature: underlying code remains ASCII-compatible. This helps to read and understand code faster. For some frequent sequences like .. or // , ligatures allow us to correct spacing.
Code examples
Ruby:
JavaScript:
Erlang:
Go:
LiveScript:
Clojure:
Terminal support
Works Doesn’t work
Black Screen Cmder
Butterfly ConEmu
HyperTerm GNOME Terminal
Konsole iTerm 2 (coming in 3.1)
QTerminal LXTerminal
Terminal.app (OS X default mate-terminal terminal)
Termux (Android terminal mintty emulator)
PuTTY
Terminator, xfce4-terminal, lxterminal, gtkterm, xfce4-terminal and other libvte- based terminals (bug report)
sakura
Editor support
Works Doesn’t work
Anjuta (unless at the EOF) Arduino IDE
AppCode (2016.2+, instructions) Adobe Dreamweaver
Atom 1.1 or newer (instructions) Eclipse (Mac and Win, vote here)
BBEdit (instructions) Standalone Emacs (workaround)
Brackets (with this plugin) gVim
Chocolat IDLE
CLion (2016.2+, instructions) KDevelop 4
Coda 2 Monkey Studio IDE
CodeLite Notepad++
Geany SublimeText (vote here)
gEdit / Pluma
GNOME Builder
IntelliJ IDEA (2016.2+, instructions)
Kate, KWrite
Komodo
Leafpad
LibreOffice
LightTable (instructions)
MacVim 7.4 or newer (instructions)
Mancy
Meld
Mousepad
NetBeans
Notepad (Win)
PhpStorm (2016.2+, instructions)
PyCharm (2016.2+, instructions)
QtCreator
RStudio (instructions)
RubyMine (2016.2+, instructions)
Scratch
TextAdept (Linux, Mac)
TextEdit
TextMate 2
Visual Studio 2015
Visual Studio Code (instructions)
WebStorm (2016.2+, instructions)
Xamarin Studio/Monodevelop
Xcode (with this plugin)
Probably work: Smultron, Vico Under question: Code::Blocks IDE
Browser support
IE 10+, Edge: enable with font-feature-settings: "calt" 1; Firefox Safari Chromium-based browsers (Chrome, Opera): enable with font-variant-ligatures: contextual; or text-rendering: optimizeLegibility , see 571246 ACE CodeMirror
Alternatives
Other monospaced fonts with ligatures:
Hasklig (free) PragmataPro (€59) Monoid (free) Fixedsys Excelsior (free) Iosevka (free) DejaVu Sans Code (free)
Credits
Author: Nikita Prokopov @nikitonsky Based on: Fira Mono Inspired by: Hasklig Software: Glyphs 2 (thx Georg Seifert for a license)
Changelog
1.203 (September 17, 2016)
Added __ (#120, #269)
1.202 (September 17, 2016)
Removed {. .} [. .] (. .) (#264)
1.201 (August 30, 2016)
Removed [] (#92) {- -} (#248) Removed /** **/ and disabled ligatures for /*/ */* sequences (#219 #238) Added ]# {. .} [. .] (. .) (#214)
1.200 (July 18, 2016)
Removed !!! ??? ;;; &&& ||| =~ (#167) ~~~ %%% New safer calt code that doesn’t apply ligatures to long sequences of chars, e.g. !!!! , >>>> , etc (#49, #110, #176) Larger + - * and corresponding ligatures (#86) Hexadecimal x ( 0xFF ) is now applied to sequences like 128x128 as well (#161) Added twoTurned (U+218A) and threeTurned (U+218B) (#146) Added whiteFrowningFace (U+2639) (#190)
Simplified visual style on markdown headers ## ### #### (#107) Added > (#147) Provided ttf and webfonts versions (eot, woff, woff2) (#18, #24, #38, #101, #106)
Increased spacing in <= >= (#117)
1.102
Support for IntelliJ-based IDEs (instructions) Turned on autohinting
1.101
Added Light weight
Adjusted rules when vertical centering of : , - , * and + occurs
1.100
Fixed calt table conflicts ( ---- would incorrectly render as <-- && || =>> =/=
0.1
>>= =<< <<= ->> -> => <<- <- === == <=> >= <= >> << !== != <> := ++ #( #_ :: ... .. !! // /* */ />
© 2016 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About