fsharp / emacs-fsharp-mode

F# Emacs mode
Apache License 2.0
208 stars 61 forks source link

Add support for tree-sitter syntax highlighting? #310

Open atlemann opened 2 years ago

atlemann commented 2 years ago

Description

The syntax highlighting is a bit lacking. When VSCode added syntax APIs, Ionide used that instead of Regex and it got so much better. Would it be possible to follow the work done here: https://github.com/emacs-csharp/csharp-mode/issues/201 and use https://emacs-tree-sitter.github.io for more fine grained highlighting?

Expected behavior

Detailed syntax highlighting like Ionide in VSCode

Actual behavior

Too little of the code is highlighted, but it would be nice to get e.g. types, namespaces and members in different colors.

juergenhoetzel commented 1 year ago

Now that emacs 29.1 has support for tree-sider code, a PR for a fsharp-ts-mode would be awesome.

KaranAhlawat commented 8 months ago

Hello! I was looking into this, and I came across this grammar. Does anyone know if it's at a stage where it can be used to implement a tree-sitter based major mode?

kiennq commented 7 months ago

Hello! I was looking into this, and I came across this grammar. Does anyone know if it's at a stage where it can be used to implement a tree-sitter based major mode?

Its highlight looks okay to me, using the prebuilt binary in this https://github.com/kiennq/treesit-langs

KaranAhlawat commented 4 months ago

Hi all, I've started work on an fsharp-ts-mode. All contributions are welcome (and needed :p). I'm finding a few places in the grammar I'm not sure about, so I'll probably raise issues at the Ionide F# grammar repo soon-ish.

I would also be interested in exploring how we could integrate this buffer major-mode with the rest of the goodies fsharp-mode currently provides (like send stuff to the inferior F# process, evaluating blocks, loading files into the F# process etc.)