tonsky / firacode Goto Github PK
View Code? Open in Web Editor NEWFree monospaced font with programming ligatures
License: SIL Open Font License 1.1
Free monospaced font with programming ligatures
License: SIL Open Font License 1.1
==>
can be used in certain Smalltalks as logical implication
moon isHamburger ==> man isBlack "is True"
<==
is currently in no standard library but certainly possible
Hi, really enjoy the font, but i recently noticed that the logical and (&&) and the bitwise xor (^) are indistinguishable.
This is what you would see in a C program:
a ∧ b // a and b
a ^ b // a xor b
I guess this is less problematic, but c++ uses && to denote rvalue references, eg:
auto fun(Type&& value);
Repro steps:
Download font from https://github.com/tonsky/FiraCode/releases/download/0.5/FiraCode-Regular.otf
Open Control Panel > Fonts
Drag font from download into font window
Open Visual Studio Express 2013
Tools > Options > Environment > Fonts and Colors
Select Fira Code 9 pt and click OK
The >>= ligature works as do all the other ones I tested, except the -> ligature doesn't work
Any idea what's going on here? Is VS overriding that ligature? Or is the font bugged?
Markdown: ##
###
####
URL: ://
:///
Haskell: <*
<+
<$
$>
*>
+>
Any ideas what I'm doing wrong? '=>' is working fine.
The following sequences might appear in Smalltalk code:
~~
“Not identical”~=
“Not equal” (as !=
in other languages)#[
Start of a literal byte array[:
Start of a block with arugments]]]
End of multiple blocks.Example
MyClass>>myMessageWith: aNumber otherThing: anObject
aNumber ~= anObject ifTrue: [
anObject ~~ #mySymbol ifFalse: [
^ #[ 43 54 26 123 33 45 98 192 158 158]]].
"consider anObject as a collection"
^ anObject inject: aNumber into: [:sum :each | sum + 3 * each]
Hi there!
You've announced Powerline support in the 0.6 version, but it seems, they've added a bit buggy:
Also, I've noticed a little offset to the right side for ± symbol (and bottom part of + seems like cutted), and, somewhy, coloured circles (at the right side, which, actually, using same symbol in all three cases) has some positional offsets (yellow one looks like a bit divided at the left side, and red one looks smaller than yellow). I think, that is somehow related to not-really-monospaced nature of the ligatures for that symbols in the font. Maybe, due to some bug during powerline-patching, or so. How do you think?
There is a common idiom in C and C++
for(int i = N; i --> 0;) {
...
}
This code looks ugly with FiraCode. Maybe it is possible to add corresponding ligature for this?
Is it possible to get bold/italic versions of the font included alongside the regular version? Right now, editors have to fake bold/italic, which breaks the monospaceness.
I've just downloaded FiraCode 0.1 and Hasklig 0.4, and tested them in QtCreator 3.2.2 on Fedora Linux 20 x64. It seems that FiraCode doesn't do any ligature substitution, unlike Hasklig, which works fine. What could I've done wrong?
I find a lot of the ligature "collapsing" to be awesome, but the ligature "transforming" less so, as it seems less legible. That is, the collapse of !=
into the not equal ligature doesn't read the same (and in the back of my mind, I think would not be applicable to all languages, and the same with <=
and >=
. Perhaps there could be an alternate version of the font that did a lot of the beautiful whitespace collapsing (the ->
collapsing is great), without any of the transforms to symbols that don't directly correspond to the original characters?
By default C# (or at least the Visual Studio autocompletion) uses three slashes to mark a documentation comment before a type or method:
/// <summary>
/// This class does the things with the stuff.
/// </summary>
public class Widget
{
// ...
}
On Visual Studio Community 2013, Fira Code 0.3, this renders in a rather unfortunate way (in my opinion):
Is there a way to scoot that third slash closer to the others?
I've seen in someone emacs:
(fn [] ... ) => (λ [] ...)
After setting font in gvimrc
using set gfn=FiraCode\ 9
, I opened gvim, I got this
I set the terminal font to FiraCode, fonts in vim are showing as expected
I rebuilt system font cache using fc-cache -fv
just to be sure. I am on debian(8/jessie) linux.
This issue is only specific to gvim and with this font only, reproducible everytime. I tried this font with firefox, gedit, system ui font, everywhere it is working as expected. Previously, I was using Ubuntu mono
with gvim, which was working normally.
Two more additions to inequalities would be nice: Erlang's inequality operators /=
and =/=
Fira code has liagtures for ===
and !=
, but not for !==
.
@tonsky I think !==
it is important, because any JS llinter force you to use it.
I'm doing a lot of F# in emacs lately and find that I'd love to have this on my emacs like I do in Visual Studio.
I'm mostly looking for a starting point to work out what I would need to do to get the ball rolling myself.
Doesn't seem to be antialiased properly and the ligatures dont seem to work :(
Powerline + ligatures seems to be the perfect programming font. Sure you can patch the font yourself, but builtin support will result in way more beautiful results.
This is more a feature request / wishlist than a real issue. Feel free to close the issue if it is out of scope. Thanks and keep going 👍
'Interger' -> Integer
Hi
I think "0x" is good candidate for ligature. Is is used for example in Java in hax constants. For example:
int hexNumber = 0x200; // same as 512
On the other hand:
x
like "Your equation is 10x20. The result is 200"
)Once the subpixel rendering issue (atom/atom#6055) is sorted I look forward to start using both FiraCode and Monoid in the Atom editor.
Here's a short tip for enabling ligatures, but not on the current line or in the Find and replace window. I pulled it off https://gist.github.com/larsenwork/255432b5101093fb07bc and modified it a bit.
styles.less
* {
-webkit-font-smoothing: antialiased;
-webkit-font-feature-settings: "liga" on, "calt" on;
}
atom-text-editor::shadow .cursor-line {
-webkit-font-feature-settings: "liga" off, "calt" off;
}
div.find-and-replace atom-text-editor::shadow .line {
-webkit-font-feature-settings: "liga" off, "calt" off;
}
Pipes are HUGE in R right now and a nice ligature for %>% (and others in the magrittr package) would be great.
Also, many folks define %||% for testing for null and substituting values. This would be a nice addition as well.
At least for Mac, Ubuntu and Fedora
First, copying the theme foder to the packages folder generated an endless cascade of error massages. Had to restart my computer.
After adding and renaming the folder with Sublime closed, things appeared to be better until tabs and other things started to turn completely black (foreground + background) so things were still there but invisible. That happened with tabs, the left sidebar and the search bar at the bottom.
Then I simply uninstalled and went back to the nice "blackboard" color scheme.
It would be nice if FiraCode had a ligrature for ~> (wavy arrow). LiveScript use wavy arrows.
Thank you for FiraCode!
It looks like there's no longer a TTF file as of 0.6, was this intentional?
Although controversial, applying the same ligatures to Fira Sans can make for an interesting programming experience.
There is one notable Ruby operator missing: the "hash rocket" =>
. It could look like ==>
, but a little shorter.
A forward pipe operator is a nice syntax sugar present in F# and Elixir (and maybe in some other languages) which allows to rewrite
odd? = fn(v) -> rem(v, 2) != 0 end
Enum.sum(Stream.filter(Stream.map(1..100_000, &(&1 * 3)), odd?))
as
odd? = fn(v) -> rem(v, 2) != 0 end
1..100_000 |> Stream.map(&(&1 * 3)) |> Stream.filter(odd?) |> Enum.sum
or on multiple lines:
1..100_000
|> Stream.map(&(&1 * 3))
|> Stream.filter(odd?)
|> Enum.sum
This is an awesome operator as it makes it very visible that FP is all about a flow of transformations of data.
Would you consider including it into FiraCode? To be honest I have a very vague idea what symbol it should be, as all nice arrows have already been used
The ligatures are not being rendered correctly (or rendered at all, in the manner shown). Looks exactly like Fira Mono!
I'm using Atom 1.1 with Fira Code (It's awesome!), but I noticed ?:
renders to a quite odd symbol.
This is the plain text:
type U = {
aaa?: string // ?: means an optional property
bbb?: number
}
function F(aaa?: string, bbb?: number) {
// ?: means an optional parameter
}
Here is what I see:
This strange ligature symbol makes no sense to me, it would be better to have no ligature at all here.
I had to change advanceWiths to be the same for my monospaced font to work in qVIM on windows (larsenwork/monoid#23)
I'd like to add ligatures to my font too but wouldn't want to break support for VIMs - what have you done to circumvent this issue?
R has a number of binomial operators with the pattern %X% that might be good candidates for ligatures.
%>%
, pipe operator, passes result to next function
%in%
, matching logical operator, e.g., x %in% table
means "does x
exist in table
?"
x %% y
, modulus
x %/% y
, integer division
x %*% y
, matrix multiplication
x %o% y
, outer product
x %x% y
, kronecker product
Not sure the best visual approach for these. Probably best that the %
symbols remain present in some form, but are visually less emphasized than the center characters.
Any line which has ligatures in will end up with additional whitespace being inserted near the end of the line. As an extreme example the following line of Scala code:
private val dateTimePattern = """(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d?):(\d\d?):(\d\d?)(?:\.(\d{1,3}))?(?:Z|[+-](\d\d)(?::?(\d\d))?)?""".r
Appears to have about 3 extra spaces before the closing quote marks. The cursor position is also thrown off by this which makes it hard to edit lines with ligatures.
It sure looks pretty though! ;-)
I'm viewing this in Atom 0.206 on OS X Yosemite in case that helps/is related to the issue. I've attached a screenshot of the problem.
As the title says, I wonder if boolean logic symbols could be added, such as ¬ (negation), ∧(conjuction), ∨(disjunction).
It would be nice to have support for conflict marks.
<<<<<<<
=======
>>>>>>>
On OS X I've specified the font family in Atom and Sublime 3 as 'FiraCode-regular' which enables the font but I'm not seeing any ligatures before I add text-rendering: optimizeLegibility;
to my theme.
Are there any recommendations to enable open type features with FiraCode in Atom or Sublime?
Tested this font in Kate (Kubuntu 14.04 [x64]). It doesn't do any any ligature substitution, unlike Hasklig, which works fine.
I think you need your own list of [tested] supported programs instead of referring to the Hasklig's list.
It would be great to use the most actual version of this on web sites right from CDN.
What you think about it?
<=
Is used in Erlang for binary comprehensions and not equivalent to =<
1. << << (digit(I)) >> || <<I:4>> <= Bin >>. % ⇐
2. A =< B. % ≤
Perhaps such a solution through the separation of font styles?
The font works, but ligatures do not in PHPStorm. Tested on Linux version 9.1.
I'd like to see ligatures for Perl matching operators, specifically:
It looks like there are some pinyin characters that aren't supported in this font just yet, and I was wondering if they're on the roadmap to support in the future?
The problem characters pictured are:
character | description | oct | dec | hex | html |
---|---|---|---|---|---|
ú |
latin small letter u with acute | 0372 |
250 |
0xFA |
ú |
ū |
latin small letter u with macron | 0553 |
363 |
0x16B |
ū |
ǎ |
latin small letter a with caron | 0716 |
462 |
0x1CE |
ǎ |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.