<<

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 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 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. 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: 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 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 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 - 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) IDE

AppCode (2016.2+, instructions)

Atom 1.1 or newer (instructions) (Mac and Win, vote here)

BBEdit (instructions) Standalone (workaround)

Brackets (with this plugin) gVim

Chocolat IDLE

CLion (2016.2+, instructions) KDevelop 4

Coda 2 Monkey Studio IDE

CodeLite Notepad++

Eclipse () IDE

Geany SublimeText (vote here)

/ 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: , Vico Under question: Code::Blocks IDE

Browser support

IE 10+, Edge: enable with font-feature-settings: "calt" 1; -based browsers (Chrome, ): enable with font-variant-ligatures: contextual; or text-rendering: optimizeLegibility , see 571246 CodeMirror

Alternatives

Other monospaced with ligatures:

Hasklig (free) PragmataPro (€59) Monoid (free) 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 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