i-tu / hasklig Goto Github PK
View Code? Open in Web Editor NEWHasklig - a code font with monospaced ligatures
License: SIL Open Font License 1.1
Hasklig - a code font with monospaced ligatures
License: SIL Open Font License 1.1
It would be very nice to have the complete list of ligatures in plain text. This is useful, for example, for quick checking whether text editor properly supports all of them: you just copy & paste them into editor window and see if everything works as expected.
Initialization and declaration in Go.
See end of Go syntax in http://blog.golang.org/gos-declaration-syntax.
According to the release notes of BBEdit 11 font ligatures are now supported:
You can now turn on font ligatures with an expert preference. This allows enhanced text rendering behavior in certain fonts, such as the work-in-progress Hasklig font which uses ligatures to enhance the display of compound-character Haskell operators.
Ligatures may be enabled or disabled per font based on the font's display name. So, if you wanted to enable ligatures only for the Hasklig font, you would do it thusly:
defaults write com.barebones.bbedit EnableFontLigatures -bool NO
defaults write com.barebones.bbedit EnableFontLigatures_Hasklig -bool YES
The font's display name is the name as it appears in the "Fonts" panel or in the Font Book application; not the name of the font file on disk.
This is pretty cool. How about getting hosted on Google Web Fonts?
In some languages (PHP, JavaScript), there's a big difference between the two following comparison operators:
==
: compare if same value
===
: compare if same value and same type
This makes it important to easily recognize which one you are using.
The current ligatures make the ===
operator a slightly longer version of the ==
, and it is difficult to distinguish them at first glance.
In some other ligature fonts, the ===
is represented as three horizontal bars, instead of only two. This makes it immediately distinguishable from the standard two bars in ==
.
The negated versions of these, !=
and !==
, should get the same treatment.
Here's an example of how this looks in the Firacode font (https://github.com/tonsky/FiraCode):
Just tested in QtCreator 3.2.2 for Linux x64 — works fine.
Having a extra codepoint for the compositionoperator with a width of 3 chars, one could easily fontify these in emacs without fontifying name spaces
Hello.
Thanks for your hard work on Hasklig. Incase you haven't heard, SCP 2.0 has landed https://github.com/adobe-fonts/source-code-pro/releases/tag/2.010R-ro/1.030R-it so I look forward to an updated version of Hasklig in the near future.
Thanks heaps
One of the powerline symbols, glyph 969 (e0b3) is identical to glyph 697 (e0b1) but should be a mirrored version.
I think the title says it all - I worked on a PR which recently got merged into mainline MacVim which enables ligature support for the CoreText renderer 😸
I know it is not supported for now, I just want to subscribe to any news in the regard of iTerm2.
Many characters (for example, /*
, but others also) in italic look extremely strange in IntelliJ IDEA 2016.1.1:
The same looks fine if I add an additional star to the first line (I guess that changes the text to normal instead of italic):
Is it a Hasklig issue or should I report that to the IDEA developers?
Intellij Idea now supports ligatures http://blog.jetbrains.com/idea/2016/06/intellij-idea-2016-2-eap-case-only-renames-in-git-ligatures-background-images-and-more/
I'm seeing a strange issue, ligatures work with Monoid but not with Hasklig in the OS X terminal. See screenshot:
Erlang has /=
and =/=
with different semantics, and if I type =/=
, I get a visible space between =
on the left and the ligature for /=
on the right.
Also, am I mistaken, or is =:=
already included?
I would really love to see all of the following
! @ # $ % ^ & * | ? . , / \ " : ~
as ligatures with all of the following
<.> <. .>
so...
<!> <! !>
<@> <@ @>
<#> <# #>
<$> <$ $>
<%> <% %>
<^> <^ ^>
<&> <& &>
<*> <* *>
<|> <| |>
<?> <? ?>
<.> <. .>
</> </ />
<\> <\ \>
<"> <" ">
<:> <: :>
<~> <~ ~>
as well as the rest of the common binders:
>=> <=<
<**>
>>^ ^<<
<<^ ^>>
It would also be nice if \
without <
or >
would be displayed as λ
. So...
\x -> x + 1
--becomes
λx -> x + 1
Lastly (I promise), it would be nice to see forall
get displayed as giant ∀
.
I tried setting up this font in Atom, and after I disabled hardware acceleration and added body { text-rendering: optimizeLegibility;
to my css configuration, it seemed to work, but the cursor shows up in the wrong place (and it gets worse the more ligatures you have in a line). The cursor shown here is actually at the end of the line:
I just want to clarify if Atom has been able to use the font with full support before in a different config/version/system. I'm using the current version 0.146.0
on Ubuntu 14.04.
Supporting F# would be fantastic.
This is a bit unfortunate. FiraCode works in qTerminal on linux. But I would like to try hasklig on linux in a terminal.
For some reason I could not publish a branch and make a PR, sorry.
In readme.md
add the following:
+ [Visual Studio Code](https://code.visualstudio.com)
I tried to execute ./buildAll.sh
but it seems there is hard mentions of your personal files in it.
How can I build the fonts from the sources ?
I'm on Ubuntu.
I have been playing around with Hasklig in my URXVT configuration in .Xdefaults
, but I haven't been able to display any of the ligatures. Has anyone found out how to do it (or whether it is even possible)?
I've just installed Hasklig on my Linux Mint and noticed a common "pattern" I had got broken-ish. Images say it better than words:
FiraCode, stars with ligatures
Hasklig, ligatures make the line go further into the column limit
I'm pretty sure I didn't add any stars to the last screenshot :)
Shots taken on PHPStorm, but the effect can be seen as well in Pluma/gEdit. Additionally, Storm goes crazy with the cursor in that line, as you can see through the image: it seems the characters are displayed in their correct column, even though the rendering is out of it.
Hello, I'd like to see ligatures for != and !==. When i first saw /= ligature it was pretty confusing to me, because it looks just like i would wanted to != look.
While it may not be used in Haskel, it would be nice to have a ligature for <=
, akin to the ligature for =>
.
This symbol is used in some other languages, notably as assignment operator in VHDL and Verilog.
Hasklig works great for the ChucK language. Not only does it include a snazzy ligature for the all-important ChucK operator ( => ), but <<<, >>>, <<, >>, ==, ++, || and :: are also useful symbols in ChucK. I've been using it with success in ChucK's miniAudicle editor for Mac OS X.
If it's not too far out of scope, for symmetry's sake I'd like to request the addition of the unChucK operator: =<
Other ligature additions that would be useful in ChucK: != (does not equal) && (logical OR) -- (decrement) @=> (explicit assignment) +=> -=> *=> /=> %=> <<=> >>=> &=> |=> ^=> (various arithmetic and bitwise assignment operators). Perhaps I should be looking at creating a specialized ChucK coding typeface as a fork of Hasklig.
I'm interested in adding Hasklig-style ligatures to a proportional font like Source Sans Pro. However, looking at the code for Hasklig/source-sans-pro and instructions for building it, I can't get enough insight in how to do this. I think it would be of great value to the programming community if some information was provided on how Hasklig was developed from an open source font (what tools were used, how it was built, and so on) so that it could be modified and replicated in other contexts.
To me the "/=" ligature looks like "not equal", and not like an assignment operator. I recommend to abandon this ligature or make it clearer. Since there are no ligatures for +=, *= and -=, I don't see any benefit in this ligature anyways, and it is confusing, because it looks similar to "==" but this is not an assignment operator.
Hello! Would it be possible to add lens-related ligatures?
Here is the list of operators in Lenses: https://github.com/ekmett/lens/wiki/Operators
The most important would be ^.
, .~
, %~
and ^?
, but it would be so awesome to add support to greater number of them! I've seen that in some other ligature-aware fonts some of them are already supported, but nothing is so beautifull as Hasklig! :)
On twitter a few images of hasklig and emacs are floating around. And it says here that emacs support is in progress. What is the current state? And is there a way to help?
Full disclosure: I only came across this yesterday in an article on Smashing Magazine's newsletter. It's a brilliant concept and it makes working in code much more visually appealing. I was a bit worried at first that the symbols might diminish the importance of the operator when the page is being scanned but my experience so far is that the opposite is true: they really jump out making the operation much clearer. Good work.
I'm using this font on a Mac in the Coda IDE and I've noticed that if the character pair is interrupted by a word-wrap that the ligature is not applied. Is this a problem with my IDE or can this be addressed within the ligature logic? Also if I resize the screen the ligature is applied correctly.
So I'd really like xfce4-terminal support since I use neovim inside of it and would really like hasklig. I've tried the pre-release version (apparently with support for more clients) and the stable one, and both don't work. I've also tried Konsole but I'm guessing my version is outdated since hasklig doesn't pop up in the font selection and fira mono doesn't work at all (no ligatures). So could xfce4-terminal support be added into the Hasklig font? Or would I have to open a feature request on xfce for ligatures?
I'm not sure if this is an Atom issue or a Hasklig one. There's an issue open at Atom here: atom/atom#11567 (comment)
Basically, with other fonts, like FiraCode, when you move the cursor through a ligature, it shows the cursor inside the ligature.
With Hasklig, it always shows the cursor on one side, which has led me to make many erroneous edits.
Is there something in the design of Hasklig vs FiraCode that would cause it? I much prefer the look of Hasklig, so it would be great if this issue were resolved.
Please add support for the plus minus symbol, ± .
I discovered that Vico editor appears to render ligatures just fine (someone should confirm).
https://github.com/vicoapp/vico
It's also a pretty cool editor with a faithful Vim mode.
with these in the width of 2 chars, you could in emacs easily fontify || and && to the mathematical notation
Providing a symbol for each invisible characters is really useful while coding. (including: BOM, Combining Grapheme Joiner, Left-to-right mark / Right-to-left mark, Soft hyphen Word joiner, Zero-width joiner, Zero-width non-joiner, Zero-width space) (https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Special-purpose_characters)
https://www.microsoft.com/typography/otfntdev/glyphs.htm
https://commons.wikimedia.org/wiki/Category:IEC_60417_symbols
While Hasklig ligatures work, if you toggle text-rendering: optimizeLegibility
(needed for ligatures) on NW.js 0.12.x, which is using embedded Chromium 41.0.2272.76, the line-length of the "monospaced" font changes. text-rendering: geometricPrecision
has the same error.
See: Crunch/Crunch-2#39
This is probably why support has been difficult for Chromium-based editors like Atom. The Hasklig font simply doesn't render as a monospace font.
Java (and some others) has !=
. It should look like /=
Thanks
The link in the README (http://sublimetext.userecho.com/topic/433445-/) is dead.
Some cursory searching suggests that http://sublimetext.userecho.com/topics/4719-does-sublimetext-support-programming-ligatures-fontlike-fira-code/ may be a good replacement. It's linked from the FiraCode repository and is also the current highest-voted one.
Is it possible to add some space to the group of repetitive zeros: 100000 -> 100 000 ?
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.