Git Product home page Git Product logo

firacode's Issues

Add ==> and <==

==> can be used in certain Smalltalks as logical implication

moon isHamburger ==> man isBlack "is True"

<== is currently in no standard library but certainly possible

C/C++ bitwise xor similar to logical and

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);

-> ligature doesn't seem to work on VS2013 / Windows 7

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?

kde support

I see that kate/kwrite/konsole are listed as 'should work'.
While they didn't in kde4, but they definitely work in plasma/kde 5
snapshot12

Future ideas

Markdown: ## ### ####
URL: :// :///
Haskell: <* <+ <$ $> *> +>

Smalltalk ligatures

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]

Powerline support in 0.6

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?

firacode_artefacts

Add support for --> operator

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?

Bold version?

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.

Doesn't work in QtCreator while Hasklig works

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?

More conservative ligatures?

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?

C# Doc Comments

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

font rendering

Is there a way to scoot that third slash closer to the others?

fn to &#955;

I've seen in someone emacs:

(fn [] ... ) => (λ [] ...)

garbled font in gvim but not in terminal or vim

After setting font in gvimrc using set gfn=FiraCode\ 9, I opened gvim, I got this
screenshot from 2015-05-25 19 01 29

I set the terminal font to FiraCode, fonts in vim are showing as expected
screenshot from 2015-05-25 19 03 09

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.

Erlang's /= and =/=

Two more additions to inequalities would be nice: Erlang's inequality operators /= and =/=

Ligature for !==

Fira code has liagtures for === and !=, but not for !==.

@tonsky I think !== it is important, because any JS llinter force you to use it.

What would it take to get ligatures working in emacs?

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.

Powerline support

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 👍

Ligature for "0x"

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:

  • I guess it is not so common notation
  • would it corrupt another phrases? (eg. some numbers followed by x like "Your equation is 10x20. The result is 200")

Atom editor setup

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;
}

Ignore this

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.

No TTF in 0.6

It looks like there's no longer a TTF file as of 0.6, was this intentional?

Modify Fira Sans as well

Although controversial, applying the same ligatures to Fira Sans can make for an interesting programming experience.

Ruby ||=

Just a suggestion but I think we could make the ||= look a little better for Ruby

Current

screen shot 2015-05-28 at 12 31 12 am

Forward pipe operator |> (F# and Elixir)

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

Wrong ligature for ?:

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.

How do you set monospace attributes?

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?

Binomial operators for R

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.

Spurious whitespace being inserted

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.

screen shot 2015-06-05 at 10 17 26

How to enable open type features in Sublime/Atom

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?

Doesn't work in Kate while Hasklig works

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.

Erlang syntax for <= and =<

<= 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?

Doesn't work at all in Emacs

I know Emacs doesn't support ligatures, but I was still hoping to use Fira Code in Emacs since it has less line spacing or lower line height than Fira Mono. But this is what I see when I use Fira Code in Emacs:

screenshot

Perl matching operators (<=>, =~, !~, ~~)?

I'd like to see ligatures for Perl matching operators, specifically:

  • "<=>" → "⟺" (3 chars wide)
  • regex match, "=~" → "≂" or "⋍"?
  • regex non-match, "!~" → same, struck through?
  • smartmatch operator, "~~" → (double tilde)?

Pinyin characters

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?

screen shot 2015-09-05 at 10 38 27 am

The problem characters pictured are:

character description oct dec hex html
ú latin small letter u with acute 0372 250 0xFA &uacute;
ū latin small letter u with macron 0553 363 0x16B &#363;
ǎ latin small letter a with caron 0716 462 0x1CE &#462;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.