1
1
mirror of https://github.com/tonsky/FiraCode.git synced 2024-08-16 16:30:25 +03:00
FiraCode/README.md
2015-05-11 15:23:03 +06:00

70 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Fira Code: monospaced font with programming ligatures
#### [Download Fira Code v0.3](https://github.com/tonsky/FiraCode/releases/download/0.3/FiraCode-Regular.otf)
### Problem
Programmers use a lot of symbols, often encoded with several characters. For human brain sequences like `->`, `<=` or `:=` are single logical token, even if they take two or three places on the screen. Your eye spends non-zero amount of evergy 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 thats not the case yet.
### Solution
Fira Code is a Fira Mono font extended with 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.
### Fira Code (with ligatures):
<img src="./showcases/all_ligatures.png" style="width: 728px; height: 175px;"/>
Compare to Fira Mono (without ligatures):
<img src="./showcases/no_ligatures.png" style="width: 728px; height: 175px;"/>
### Editor support
Please refer to [Hasklig Readme](https://github.com/i-tu/Hasklig) for editor support
_Note:_ Im not a font designer, and Fira Code is built in sort of [a hacky way](https://github.com/mozilla/Fira/issues/62) from OTF version of Fira Mono. Please forgive me if it doesnt work for you. Help will be greatly appreciated.
### Code examples
Erlang:
<img src="./showcases/erlang.png" width="405" height="433" />
Go:
<img src="./showcases/go.png" width="274" height="171"/>
Haskell:
<img src="./showcases/haskell.png" width="319" height="265"/>
JavaScript:
<img src="./showcases/javascript.png" width="361" height="183"/>
Ruby:
<img src="./showcases/ruby.png" width="464" height="143"/>
### Credits
This work is based on OFL-licensed [Fira Mono font](https://github.com/mozilla/Fira). Original Fira Mono font was not changed, only extended.
Fira Code was inspired by [Hasklig font](https://github.com/i-tu/Hasklig): Ligatures for Haskell code
### Changelog
**0.3**: `~@` `#?` `=:=` `=<`
**0.2.1**: Fixed witdh of `&&` and `||`
**0.2**: `-->` `<--` `&&` `||` `=>>` `=/=`
**0.1**
`>>=` `=<<` `<<=` `->>` `->` `=>` `<<-` `<-`
`===` `==` `<=>` `>=` `<=` `>>` `<<` `!==` `!=` `<>`
`:=` `++` `#(` `#_`
`::` `...` `..` `!!` `//` `/*` `*/` `/>`