Install swift-ts-mode and swift treesitter grammar

This commit is contained in:
Tobias Ostner 2026-03-30 09:47:25 +02:00
parent 79105e12f7
commit a115d31f07
3 changed files with 18 additions and 9 deletions

View file

@ -184,8 +184,9 @@
(add-to-list 'eglot-server-programs
`(,mode . ("vscode-json-language-server" "--stdio"))
0))
(add-to-list 'eglot-server-programs
'(swift-mode . ("xcrun" "sourcekit-lsp"))))
(dolist (mode '(swift-mode swift-ts-mode))
(add-to-list 'eglot-server-programs
`(,mode . ("xcrun" "sourcekit-lsp")))))
(use-package emacs
:ensure nil
@ -682,6 +683,10 @@
swift-mode:basic-offset 2
swift-mode:repl-executable "xcrun swift repl"))
(use-package swift-ts-mode
:custom
(swift-ts-mode-indent-offset 2))
(use-package tab-bar
:config
(tab-bar-mode)
@ -706,12 +711,6 @@
:custom
(treesit-auto-install 'prompt)
:config
(add-to-list 'treesit-auto-recipe-list
(make-treesit-auto-recipe
:lang 'swift
:ts-mode 'swift-ts-mode
:remap '(swift-mode)
:ext "\\.swift\\'"))
(setq treesit-auto-langs
'(swift
python

View file

@ -1,7 +1,16 @@
{ pkgs, lib, ... }:
let
swiftTreeSitterGrammar = pkgs.tree-sitter-grammars.tree-sitter-swift;
swiftTreeSitterLibraryName =
if pkgs.stdenv.hostPlatform.isDarwin then
"libtree-sitter-swift.dylib"
else
"libtree-sitter-swift.so";
in
{
home.file.".emacs.d/early-init.el".source = ./config/early-init.el;
home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ./config/tree-sitter/libtree-sitter-swift.dylib;
home.file.".emacs.d/tree-sitter/${swiftTreeSitterLibraryName}".source =
"${swiftTreeSitterGrammar}/parser";
home.file.".emacs.d/snippets".source = ./config/snippets;
programs.emacs = {
@ -64,6 +73,7 @@
restclient
smartparens
swift-mode
swift-ts-mode
super-save
terraform-mode
treesit-auto