From 3155fefd470164e0c5bca4f01f37f5662ba13d30 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 28 Jun 2025 19:41:29 +0200 Subject: [PATCH] feat(swift): add treesit support --- modules/lang/swift/README.org | 1 + modules/lang/swift/config.el | 13 +++++++++---- modules/lang/swift/packages.el | 3 +++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/lang/swift/README.org b/modules/lang/swift/README.org index 510653c2b..dabc650d4 100644 --- a/modules/lang/swift/README.org +++ b/modules/lang/swift/README.org @@ -19,6 +19,7 @@ This module adds support for the [[https://developer.apple.com/swift/][Swift pro ** Packages - [[doom-package:swift-mode]] +- [[doom-package:swift-ts-mode]] if [[doom-module:+tree-sitter]] - if [[doom-module:+lsp]] - [[doom-package:lsp-sourcekit]] - else diff --git a/modules/lang/swift/config.el b/modules/lang/swift/config.el index de11b40a2..8a16bdb0f 100644 --- a/modules/lang/swift/config.el +++ b/modules/lang/swift/config.el @@ -1,13 +1,18 @@ ;;; lang/swift/config.el -*- lexical-binding: t; -*- -(after! swift-mode +(use-package! swift-mode + :defer t + :init + (when (modulep! +tree-sitter) + (set-tree-sitter! 'swift-mode 'swift-ts-mode + '((swift :url "https://github.com/alex-pinkus/tree-sitter-swift")))) + + :config (set-repl-handler! 'swift-mode #'run-swift) (set-eglot-client! 'swift-mode '("sourcekit-lsp")) (when (modulep! +lsp) - (add-hook 'swift-mode-local-vars-hook #'lsp! 'append)) - (when (modulep! +tree-sitter) - (add-hook 'swift-mode-local-vars-hook #'tree-sitter! 'append))) + (add-hook 'swift-mode-local-vars-hook #'lsp! 'append))) (use-package! flycheck-swift diff --git a/modules/lang/swift/packages.el b/modules/lang/swift/packages.el index 2448d0ab0..56206450b 100644 --- a/modules/lang/swift/packages.el +++ b/modules/lang/swift/packages.el @@ -10,3 +10,6 @@ (package! company-sourcekit :pin "a1860ad4dd3a542acd2fa0dfac2a388cbdf4af0c")) (when (modulep! :checkers syntax -flymake) (package! flycheck-swift :pin "4c5ad401252400a78da395fd56a71e67ff8c2761"))) + +(when (modulep! +tree-sitter) + (package! swift-ts-mode :pin "43a0be79f9758fc444f5fafdff6023c4c7bf80f7"))