diff --git a/nix/config/emacs/init.el b/nix/config/emacs/init.el index 7f01646..4484bb6 100644 --- a/nix/config/emacs/init.el +++ b/nix/config/emacs/init.el @@ -164,6 +164,7 @@ (setq eglot-autoshutdown t eglot-send-idle-time 0.1) (add-to-list 'eglot-server-programs '(swift-mode . ("xcrun" "sourcekit-lsp"))) + (add-to-list 'eglot-server-programs '(swift-ts-mode . ("xcrun" "sourcekit-lsp"))) (add-to-list 'eglot-server-programs '(nix-mode . ("rnix-lsp")))) (use-package emacs @@ -548,10 +549,10 @@ swift-mode:basic-offset 2 swift-mode:repl-executable "xcrun swift repl")) -;; (use-package swift-ts-mode -;; :hook (swift-mode . subword-mode) -;; :config -;; (setq swift-ts-mode 2)) +(use-package swift-ts-mode + :config + (setq swift-ts-mode-indent-offset 2) + (add-hook 'swift-ts-mode-hook #'subword-mode)) (use-package tab-bar :config @@ -566,19 +567,18 @@ (use-package terraform-mode) -;; (use-package treesit-auto -;; :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)) -;; (treesit-auto-add-to-auto-mode-alist 'all) -;; (global-treesit-auto-mode)) +(use-package treesit-auto + :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)) + (global-treesit-auto-mode)) (use-package yaml-mode) diff --git a/nix/config/emacs/tree-sitter/libtree-sitter-swift.dylib b/nix/config/emacs/tree-sitter/libtree-sitter-swift.dylib new file mode 100755 index 0000000..1b98ad7 Binary files /dev/null and b/nix/config/emacs/tree-sitter/libtree-sitter-swift.dylib differ diff --git a/nix/module/home-manager.nix b/nix/module/home-manager.nix index 1e344bd..091ca35 100644 --- a/nix/module/home-manager.nix +++ b/nix/module/home-manager.nix @@ -1,5 +1,6 @@ {pkgs, ...}: { home.file.".emacs.d/early-init.el".source = ../config/emacs/early-init.el; + home.file.".emacs.d/tree-sitter/libtree-sitter-swift.dylib".source = ../config/emacs/tree-sitter/libtree-sitter-swift.dylib; home.packages = with pkgs; [ bottom @@ -92,8 +93,19 @@ smartparens so-long swift-mode + (trivialBuild { + pname = "swift-ts-mode"; + version = "main-05-17-2024"; + src = pkgs.fetchFromGitHub { + owner = "rechsteiner"; + repo = "swift-ts-mode"; + rev = "main"; + hash = "sha256-OrJN33iaY/7IE7bRVw2i1xnnUfc3iznxeAFcxlibx5Q="; + }; + }) super-save terraform-mode + treesit-auto yaml-mode vterm fontaine