doomemacs/modules/lang
Henrik Lissner bd0bee92cc
feat!(javascript): add treesit support
BREAKING CHANGE: This commit removes a number of core packages and
features from this module and only replaces a handful of them, so that
we can lean more on LSP and tree-sitter. To be specific:

- We used to rely on `rjsx-mode` (derived from js2-mode) for total
  JS/JSX support (though imperfect; Emacs was starved for options at the
  time). This has now been replaced with `js-ts-mode` (built-in after
  Emacs 29), falling back to `js-mode` (very rudimentary, but a decent
  fallback).
- This also meant the removal of `js2-mode`, which `skewer-mode`,
  `js2-refactor`, and `xref-js2` depended on, so those were removed
  too, and have *somewhat* been replaced with LSP integration (offers
  jump-to-definition/references and *some* refactoring actions, but no
  replacement for skewer's functionality).
- Typescript support no longer relies on the jury-rigged, web-mode-derived
  major mode (because TSX support in the upstream `typescript-mode`
  isn't great). We now use `typescript-ts-mode` (built-in into Emacs
  29.1+), falling back to `typescript-mode`.
- JSX/TSX support now *requires* tree-sitter (and Emacs 29.1+), where
  `tsx-ts-mode` is available and outshines all the alternatives (at the
  time of writing).

Due to the absolute chaos that is webdev, this module sacrifices some of
the graceful-degradation I've implemented for other modules and creates
a hard requirement on tree-sitter and Emacs 29.1+ for JSX/TSX. It still
tries to degrade gracefully for plain JS and TS, but the module's doctor
and docs will actively recommend tree-sitter.

Close: #5278
Fix: #6172
Fix: #7042
Close: #8447
Co-authored-by: ribaricplusplus <ribaricplusplus@users.noreply.github.com>
2025-08-29 14:35:49 +02:00
..
agda fix(agda): remove defunct tree-sitter.el support 2025-05-15 13:01:40 +02:00
beancount refactor(beancount): simplify +beancount--open-in-browser-after-starting-fix-a 2025-04-30 04:00:23 -04:00
cc refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
clojure refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
common-lisp bump: * 2025-05-02 14:58:40 -04:00
coq bump: * 2025-05-02 14:58:40 -04:00
crystal bump: :lang 2025-02-21 18:35:11 -05:00
csharp refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
dart feat(dart): add treesit support 2025-06-28 21:13:57 +02:00
data bump: :lang 2025-04-01 03:49:02 -04:00
dhall bump: :lang 2025-01-09 23:47:38 -05:00
elixir refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
elm refactor(elm): remove tree-sitter support 2025-08-27 17:29:58 +02:00
emacs-lisp bump: * 2025-05-02 14:58:40 -04:00
erlang feat(erlang): add treesit support 2025-08-27 17:29:58 +02:00
ess refactor(ess): remove tree-sitter support 2025-08-27 17:29:58 +02:00
factor bump: :lang factor 2024-10-20 02:32:16 -04:00
faust feat: add .doommodule files 2024-09-14 20:47:39 -04:00
fortran refactor: use negated flags 2024-10-20 02:41:50 -04:00
fsharp bump: * 2025-05-02 14:58:40 -04:00
fstar bump: * 2025-05-02 14:58:40 -04:00
gdscript bump: * 2025-05-02 14:58:40 -04:00
go refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
graphql feat(graphql): add treesit support 2025-08-28 14:32:08 +02:00
graphviz refactor(graphviz): remove tree-sitter support 2025-08-27 17:29:58 +02:00
haskell docs(haskell): mention haskell-ts-mode package 2025-08-28 14:32:08 +02:00
hy feat: add .doommodule files 2024-09-14 20:47:39 -04:00
idris bump: * 2025-05-02 14:58:40 -04:00
janet refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
java feat(java): add treesit support 2025-08-27 17:29:58 +02:00
javascript feat!(javascript): add treesit support 2025-08-29 14:35:49 +02:00
json refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
julia refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
kotlin feat(kotlin): add treesit support 2025-05-22 19:50:29 +02:00
latex bump: * 2025-05-02 14:58:40 -04:00
lean fix(lean): remove company-lean 2025-01-12 20:13:49 -05:00
ledger bump: :lang 2025-04-01 03:49:02 -04:00
lua refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
markdown refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
nim refactor: use negated flags 2024-10-20 02:41:50 -04:00
nix feat(nix): add treesit support 2025-05-24 17:27:30 +02:00
ocaml refactor(ocaml): remove tree-sitter support 2025-08-27 17:29:28 +02:00
org fix(org): remove [return] keybinds 2025-05-11 00:51:10 -04:00
php refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
plantuml feat: add .doommodule files 2024-09-14 20:47:39 -04:00
purescript bump: * 2025-05-02 14:58:40 -04:00
python refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
qt feat(qt): add treesit (and lsp) support 2025-08-28 14:32:08 +02:00
racket bump: * 2025-05-02 14:58:40 -04:00
raku refactor: use negated flags 2024-10-20 02:41:50 -04:00
rest bump: :lang 2025-02-21 18:35:11 -05:00
rst feat: add .doommodule files 2024-09-14 20:47:39 -04:00
ruby refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
rust feat(rust): add treesit support 2025-08-27 16:57:39 +02:00
scala feat(scala): add treesit support 2025-05-22 19:50:29 +02:00
scheme bump: :lang 2025-04-01 03:49:02 -04:00
sh refactor(sh): remove tree-sitter support 2025-08-27 17:32:56 +02:00
sml feat(sml): add treesit (and lsp) support 2025-08-28 14:00:59 +02:00
solidity refactor: deprecate appendq!, prependq!, & delq! macros 2025-03-25 14:16:56 -04:00
swift feat(swift): add treesit support 2025-06-28 19:42:15 +02:00
terra feat: add .doommodule files 2024-09-14 20:47:39 -04:00
web feat(web): add treesit support (for html/css) 2025-08-27 17:38:40 +02:00
yaml refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
zig refactor(tree-sitter): centralize grammar config & hacks 2025-08-27 16:57:28 +02:00
.doommodule feat: add .doommodule files 2024-09-14 20:47:39 -04:00
README.org docs(:lang): correct grammar 2024-08-09 21:21:26 -04:00

:lang

Description

These modules specialize in the integration of particular languages and their ecosystems into (Doom) Emacs.

Frequently asked questions

This category has no FAQs yet. Ask one?