Fira Code: Monospaced Font with Programming Ligatures
Total Page:16
File Type:pdf, Size:1020Kb
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 rxvt 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++ Eclipse (Linux) Spyder IDE 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 <!-- ) Added centered : (between digits, e.g. 10:40 ) Added lowercase-aligned - , * and + (only between lowercase letters, e.g. kebab case var-name , pointers *ptr etc) 1.000 Added weights: Retina (just slightly heavier than Regular) Medium Bold 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 0.6 Redrawn from Fira Mono 3.204 (slightly heavier weight) Added: ** *** +++ -- --- ?: /= /== .= ^= =~ ?= ||= |= <<< <=< -<< -< >- >>- >=> >>> <*> <|> <$> <+> <!-- {- -} /** \\ \\\ ..< ?? ||| &&& <| |> Added support for Powerline 0.5 Added: #{ ~- -~ <== ==> /// ;; </ 0.4 Added ~= ~~ #[ Rolled back && and || to more traditional look === and !== are now rendered with 3 horizontal bars 0.3 Added: ~@ #? =:= =< 0.2.1 Fixed width of && and || 0.2 Added: --> <-- && || =>> =/= 0.1 >>= =<< <<= ->> -> => <<- <- === == <=> >= <= >> << !== != <> := ++ #( #_ :: ... .. !! // /* */ /> © 2016 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About.