---
title: "fsharp-ts-mode: A Modern Emacs Mode for F#"
url: https://daily.dev/posts/fsharp-ts-mode-a-modern-emacs-mode-for-f--k71c0ksu9
source_url: https://batsov.com/articles/2026/03/27/fsharp-ts-mode-a-modern-emacs-mode-for-fsharp/
type: article
source: "Bozhidar Batsov"
published: 2026-03-31T12:29:16.987Z
updated: 2026-03-31T12:45:47.472Z
reading_time: 7
upvotes: 0
comments: 0
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# fsharp-ts-mode: A Modern Emacs Mode for F#

**[Bozhidar Batsov](https://daily.dev/sources/batsov)** · 7 min read · 0 upvotes · 0 comments

## Summary

Bozhidar Batsov announces fsharp-ts-mode, a new Tree-sitter-based F# major mode for Emacs. Built on the same architecture as his neocaml package, the 0.1.0 release includes syntax highlighting with 4 customizable levels, Tree-sitter indentation, imenu with qualified names, F# Interactive REPL integration, dotnet CLI integration, .NET API documentation lookup, and Eglot/FsAutoComplete LSP support. The post details technical challenges encountered: F#'s offside rule creates a chicken-and-egg problem with indentation-sensitive parsing, the fsharp and fsharp_signature grammars are independent with differing node types, and .fsx script files cause progressive indentation issues due to grammar quirks. Migration from the older fsharp-mode is straightforward, though automatic LSP server installation is not yet supported. A MELPA PR has been filed.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://batsov.com/articles/2026/03/27/fsharp-ts-mode-a-modern-emacs-mode-for-fsharp/>

## Similar posts on daily.dev

- [Emacs 31 Is Around the Corner: The Changes I'm Already Daily Driving](https://daily.dev/posts/emacs-31-is-around-the-corner-the-changes-i-m-already-daily-driving-3tjpkrvpn) · Lobsters · 0 upvotes · 0 comments
- [Emacs salmagundi, 2026-08-13](https://daily.dev/posts/emacs-salmagundi-2026-08-13-zs2ghgjox) · Planet Haskell · 0 upvotes · 0 comments
- [Neocaml 0.9: A Better REPL, Completion, and More Robustness](https://daily.dev/posts/neocaml-0-9-a-better-repl-completion-and-more-robustness-uqdamws86) · Bozhidar Batsov · 0 upvotes · 0 comments
- [Explainer: Tree-sitter vs. LSP](https://daily.dev/posts/explainer-tree-sitter-vs-lsp-yhbughb6b) · Hacker News · 0 upvotes · 0 comments

---

[View this post on daily.dev](https://daily.dev/posts/fsharp-ts-mode-a-modern-emacs-mode-for-f--k71c0ksu9)
