fsharp

17 articles

Unleashing Parallel Processing in Your F# Compiler

Published

Tags

Intro Hey there, let's cut to the chase: the dotnet `7.0.400` SDK release brings some feature flags that can turbocharge your Fcompiler. In this post, I'm shining a spotlight on three of these gems that you absolutely need to give a spin. Setup First things first, you need the latest [SDK](https://dotnet.microsoft.com/en-us/download/dotnet/7.0) (`7.0.400`

Fantomas 6: The Legendary Formatter

Published

Tags

Introduction Early this year we announced our plans for [Fantomas 6](https://github.com/fsprojects/fantomas/issues/2709). We are happy to announce that we have wrapped up the development of version 6 and a preview is now available on [NuGet](https://www.nuget.org/packages/fantomas/6.0.0-alpha-008). What's new? Fantomas 6 is a major release and contains a lot of new features and improvements. In

My F# compiler scripts

Published

Tags

Intro For the last year, I've been working quite extensively in the [dotnet/fsharp](https://github.com/dotnet/fsharp) codebase. I've picked up a couple of habits and created some helper scripts along the way. This is some stuff that works for me and it might be insightful for you. Or not. In this

The oak sleeps in the acorn

Published

Tags

Introduction We launched Fantomas v5 in September, and it was the first version to ship with a custom Fparser and an improved syntax tree. Many view it as a big technical achievement – I know its launch was a point of personal pride. Release party Because version 5 was a big deal, I decided

Say Hello to Fantomas 5

Published

Tags

Introduction **Fantomas 5** is here! The API of v5 is finalized! In this blogpost I will explain how you can migrate to v5 from v4. The latest preview versions are labelled as beta's, meaning **the API is stable**. Please start using these latest versions, as the final product will be very

World domination, part one

Published

Tags

Intro Some time ago, I was able to merge in a [huge refactoring effort](https://github.com/fsprojects/fantomas/pull/2218) into [the next major version of Fantomas](https://github.com/fsprojects/fantomas/issues/2160). The result of these changes make Fantomas **at least twice as fast as the v4 release**. _Before_ ``` BenchmarkDotNet=v0.13.1, OS=ubuntu 20.04 Intel Xeon Platinum 8171M CPU 2.60GHz, 1 CPU, 2 logical and 2

A word on triple-slash comments

Published

Tags

Intro Yesterday, pretty much out of nowhere, [FCS 41.0.3](https://www.nuget.org/packages/FSharp.Compiler.Service/41.0.3) was published on NuGet. I must say, I'm pretty hyped about this release. It contains a few [PRs](https://github.com/dotnet/fsharp/pulls?q=is%3Apr+is%3Aclosed+author%3Anojaf+merged%3A2021-10-30..2022-03-03) that improve the syntax tree and provide more information to work within Fantomas. It also contains some [XML documentation improvements](https://github.com/dotnet/fsharp/pulls?q=is%3Apr+11973+12484+12783) that Alex of the Rider team

Fantomas Daemon

Published

Tags

Intro The Fadvent calendar is a wonderful initiative that inspires the community to create new content in a short period of time. I've been fortunate enough to be part of this for some years now. This year, I had in mind to sit this one out actually. Sometimes, there are just no new

Gitpod & Snowpack

Published

Tags

Hey all, For my FAdvent calendar entry of 2020 I messed around with [Gitpod](https://gitpod.io/), [Snowpack](https://www.snowpack.dev/) & [Fable](https://fable.io/).<br /> You can find the result in this video: <iframe width="560" height="315" src="https://www.youtube.com/embed/yqOWx-6FXAs" frameborder="0" allow="accelerometer; autoplay; clipboard-write;encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> Take care everyone! Cheers, nojaf <span>Photo by <a href="https://unsplash.com/@anniespratt?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Annie Spratt</a> on <a href="https://unsplash.com/s/photos/polar-bear?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span>

Fantomas configuration file

Published

Tags

Hi all, The cat's out of the bag: <blockquote class="twitter-tweet"><p lang="en" dir="ltr">New version of <a href="https://twitter.com/IonideProject?ref_src=twsrc%5Etfw">@IonideProject</a> is out - it updates Fantomas support to the latest version including support for Fantomas configuration file (<a href="https://t.co/Pw3TqQ4kYe">https://t.co/Pw3TqQ4kYe</a>)<br><br>Props to <a href="https://twitter.com/verdonckflorian?ref_src=twsrc%5Etfw">@verdonckflorian</a> and <a href="https://twitter.com/ChetHusk?ref_src=twsrc%5Etfw">@ChetHusk</a> for working on this. <a href="https://twitter.com/hashtag/fsharp?src=hash&amp;ref_src=twsrc%5Etfw">fsharp</a> <a href="https://twitter.com/hashtag/toolingAdventures?src=hash&amp;ref_src=twsrc%5Etfw">#toolingAdventures</a></p>&mdash; Krzysztof Cieślak (@k_cieslak)

Using Create React App with Fable

Published

Tags

Introduction 2019 has been a great year for me for all things Frelated! I helped out with the organization of [FableConf in Antwerp](https://axxes.com/en/net-2-en/axxes-proud-host-of-fableconf-2019/), gave a [webinar at JetBrains](https://blog.jetbrains.com/dotnet/2019/07/24/webinar-from-fsharp-to-javascript-with-fable/) and was able to release [Fantomas 3.0](https://axxes.com/en/net/fantomas-3-0-over-and-above/). To wrap up the decade I'm writing this post as part of the **[FAdvent Calendar in English

Building Fable on Travis CI

Published

Tags

Introduction Hi nojaf from the future, its you from the past. Today you created a build script for compiling Fable projects on Travis CI. Using a [Docker image you maintain](https://hub.docker.com/r/nojaf/fable/) it is pretty easy to set up a Travis CI process. This blogpost is meant to capture what you knew then in case

Writing a VSCode extension with Fable 2.1

Published

Tags

Introduction This post is part of the **[FAdvent Calendar in English 2018](https://sergeytihon.com/2018/10/22/f-advent-calendar-in-english-2018/)**. I'm very grateful to be a part of this and I hope you will enjoy this one as much as I have enjoyed the others. Today I would like to show you how you can create [VS Code extension](https://code.visualstudio.com/docs/extensions/overview) from

React hooks preview with Fable

Published

Tags

Introduction A couple of weeks ago Facebook presented [React hooks](https://reactjs.org/docs/hooks-overview.html), a new way of accessing React features inside functional components. In this blogpost I would like to show that the new hooks can easily be used in combination with [Fable](https://fable.io). **Disclaimer:** Hooks are an experimental proposal to React, currently available in `16.7 alpha`,

Fantomas 2.8: global .NET Core cli tool!

Published

Tags

Hi all, A quick update regarding the new release of the [Fantomas](https://github.com/dungpa/fantomas) project. There is a new and shiny [global .NET Core cli tool](https://www.nuget.org/packages/fantomas-tool/). Install: > dotnet tool install -g fantomas-tool The `fantomas` executable will be added to your path. Another new feature is the [--preserveEOL](https://github.com/dungpa/fantomas/blob/master/docs/Documentation.mdpreferences) option. This will respect [additional newlines after formatting](https://github.com/dungpa/fantomas/issues/143). You can

Fantomas rejuvenated: .NET cli tool

Published

Tags

Introduction As part of the [Fmentorship program](https://fsharp.org/mentorship/index.html) my mentor [Anthony Lloyd](http://anthonylloyd.github.io) and I have been working on the [Fantomas project](https://github.com/dungpa/fantomas). Fantomas is like [prettier](https://prettier.io) or [elm-format](https://github.com/avh4/elm-format) but for F. It was originally created by Anh-Dung Phan and people have suggested that it could be a part of the

Building Fable apps inside a Docker container

Published

Tags

Introduction Want to use Docker to develop Fable applications? What if I told you it isn't all that difficult? > TLDR; How to user Docker with Fable. Docker So the first step with Docker images is that you check whether a suiting image that fits your needs already exists. When I checked Docker