doomemacs/modules/lang
Henrik Lissner 6acf163cf7
refactor!: replace smartparens with electric
BREAKING CHANGE: This moves smartparens out of core and formally
deprecates it. The package has been a performance liability and is only
being used for pair management, so the rest of its functionality was
overkill for what we needed it for.

Instead, I'm waiting for electric.el's support for N-character pairs in
Emacs 31. In the meantime, I delegate to yasnippet (later, tempel)
snippets to handle more complex pairs like /* ... */ or <?php ... ?>.

- To restore auto-pairing functionality (which is all Doom was using
  smartparens for, really), enable :emacs (electric +pair). This is not
  a perfect replacement for all of smartparens' capabilities. More
  complex pairing is being relegated to snippets (for example, /* ... */
  and <?php ... ?> comment blocks will soon have snippets for them).

- To restore the old smartparens functionality, enable :config (default
  +smartparens). Keep in mind that this is temporary! In v3, smartparens
  will be removed entirely OR moved to its own module; this hasn't been
  decided yet.

Fix: #5759
Fix: #5894
Fix: #6223
Fix: #8093
Fix: #8620
2026-02-21 17:00:48 -05:00
..
ada bump: :lang ada cc common-lisp ess javascript ocaml scheme 2025-12-08 17:17:14 -05:00
agda bump: :lang 2026-02-13 16:31:15 -05:00
beancount fix(beancount): disable flymake with +lsp 2026-02-09 22:39:52 -05:00
cc docs: discourage after! and use-package! use 2026-02-09 04:29:47 -05:00
clojure fix(clojure): Enable CIDER for clojurec and clojurescript 2026-02-14 00:25:25 -05:00
common-lisp bump: :lang 2026-01-18 03:13:00 -05:00
coq bump: :lang 2026-02-13 16:31:15 -05:00
crystal bump: :lang 2026-01-18 03:13:00 -05:00
csharp refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
dart bump: :lang 2026-01-18 03:13:00 -05:00
data refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
dhall bump: :lang 2025-01-09 23:47:38 -05:00
elixir refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
elm refactor(elm): remove tree-sitter support 2025-08-27 17:29:58 +02:00
emacs-lisp feat(emacs-lisp): change-working-buffer: default to current buffer 2025-12-30 22:50:31 -05:00
erlang bump: :lang 2026-02-13 16:31:15 -05:00
ess bump: :lang 2026-02-13 16:31:15 -05: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 docs: discourage after! and use-package! use 2026-02-09 04:29:47 -05:00
fsharp bump: :lang beancount dart elixir fsharp go graphviz 2025-12-02 21:46:22 -05:00
fstar bump: :lang 2025-09-02 16:16:03 +02:00
gdscript feat(gdscript): add gdshader-mode 2026-02-21 16:55:36 -05:00
go bump: :lang 2026-02-13 16:31:15 -05:00
graphql bump: :lang 2026-01-18 03:13:00 -05:00
graphviz bump: :lang beancount dart elixir fsharp go graphviz 2025-12-02 21:46:22 -05:00
haskell bump: :lang 2026-02-13 16:31:15 -05:00
hy refactor(hy): remove redundant mode/interpreter entries 2025-05-15 17:47:27 +02:00
idris bump: :lang 2026-02-13 16:31:15 -05:00
janet bump: :lang 2026-02-13 16:31:15 -05:00
java docs(java): s/begin-src/begin_src/ 2026-02-09 22:52:07 -05:00
javascript bump: :lang ada cc common-lisp ess javascript ocaml scheme 2025-12-08 17:17:14 -05:00
json fix(:lang): missing grammar recipes 2025-08-31 14:39:38 +02:00
julia bump: :lang 2026-02-13 16:31:15 -05:00
kotlin bump: :lang 2025-09-02 16:16:03 +02:00
latex refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
lean refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
ledger bump: :lang 2026-01-18 03:13:00 -05:00
lua bump: :lang 2026-02-13 16:31:15 -05:00
markdown refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
nim bump: :lang 2026-02-13 16:31:15 -05:00
nix bump: :lang 2026-02-13 16:31:15 -05:00
ocaml fix(ocaml): don't prefix comment continuation lines with * 2026-02-15 21:55:43 -05:00
org bump: :lang 2026-02-13 16:31:15 -05:00
php refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
plantuml fix: file-name-concat paths instead of concat 2025-12-30 22:59:10 -05:00
purescript bump: :lang 2025-09-02 16:16:03 +02:00
python refactor!(python): remove pyimport & py-isort 2026-02-21 16:55:55 -05:00
qt fix(:lang): add treesit-available-p checks to *-ts-mode packages 2025-09-01 20:11:02 +02:00
racket bump: :lang 2026-02-13 16:31:15 -05:00
raku bump: :lang php python raku rest swift zig 2025-12-02 21:44:55 -05:00
rest bump: :lang 2026-01-18 03:13:00 -05:00
rst bump: :lang 2025-09-02 16:16:03 +02:00
ruby refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
rust bump: :lang 2026-02-13 16:31:15 -05:00
scala bump: :lang 2026-02-13 16:31:15 -05:00
scheme bump: :lang 2026-01-18 03:13:00 -05:00
sh refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
sml refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
solidity refactor: deprecate appendq!, prependq!, & delq! macros 2025-03-25 14:16:56 -04:00
swift bump: :lang php python raku rest swift zig 2025-12-02 21:44:55 -05:00
terra feat: add .doommodule files 2024-09-14 20:47:39 -04:00
web refactor!: replace smartparens with electric 2026-02-21 17:00:48 -05:00
yaml fix(:lang): missing grammar recipes 2025-08-31 14:39:38 +02:00
zig bump: :lang 2026-02-13 16:31:15 -05: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?