mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
feat(csharp): add treesit support
This commit is contained in:
@ -4,12 +4,12 @@
|
|||||||
:hook (csharp-mode . rainbow-delimiters-mode)
|
:hook (csharp-mode . rainbow-delimiters-mode)
|
||||||
:config
|
:config
|
||||||
(set-formatter! 'csharpier '("csharpier" "format" "--write-stdout")
|
(set-formatter! 'csharpier '("csharpier" "format" "--write-stdout")
|
||||||
:modes '(csharp-mode))
|
:modes '(csharp-mode csharp-ts-mode))
|
||||||
(set-electric! 'csharp-mode :chars '(?\n ?\}))
|
(set-electric! '(csharp-mode csharp-ts-mode) :chars '(?\n ?\}))
|
||||||
(set-rotate-patterns! 'csharp-mode
|
(set-rotate-patterns! '(csharp-mode csharp-ts-mode)
|
||||||
:symbols '(("public" "protected" "private")
|
:symbols '(("public" "protected" "private")
|
||||||
("class" "struct")))
|
("class" "struct")))
|
||||||
(set-ligatures! 'csharp-mode
|
(set-ligatures! '(csharp-mode csharp-ts-mode)
|
||||||
;; Functional
|
;; Functional
|
||||||
:lambda "() =>"
|
:lambda "() =>"
|
||||||
;; Types
|
;; Types
|
||||||
@ -30,12 +30,19 @@
|
|||||||
:return "return"
|
:return "return"
|
||||||
:yield "yield")
|
:yield "yield")
|
||||||
|
|
||||||
(sp-local-pair 'csharp-mode "<" ">"
|
(sp-local-pair '(csharp-mode csharp-ts-mode) "<" ">"
|
||||||
:when '(+csharp-sp-point-in-type-p)
|
:when '(+csharp-sp-point-in-type-p)
|
||||||
:post-handlers '(("| " "SPC")))
|
:post-handlers '(("| " "SPC")))
|
||||||
|
|
||||||
(when (modulep! +lsp)
|
(when (modulep! +lsp)
|
||||||
(add-hook 'csharp-mode-local-vars-hook #'lsp! 'append))
|
(add-hook 'csharp-mode-local-vars-hook #'lsp! 'append)
|
||||||
|
(add-hook 'csharp-ts-mode-local-vars-hook #'lsp! 'append))
|
||||||
|
|
||||||
|
(when (and (modulep! +tree-sitter)
|
||||||
|
(fboundp 'csharp-ts-mode)) ; 29.1+ only
|
||||||
|
(set-tree-sitter! 'csharp-mode 'csharp-ts-mode
|
||||||
|
'((c-sharp :url "https://github.com/tree-sitter/tree-sitter-c-sharp"
|
||||||
|
:rev "v0.23.1"))))
|
||||||
|
|
||||||
(defadvice! +csharp-disable-clear-string-fences-a (fn &rest args)
|
(defadvice! +csharp-disable-clear-string-fences-a (fn &rest args)
|
||||||
"This turns off `c-clear-string-fences' for `csharp-mode'. When
|
"This turns off `c-clear-string-fences' for `csharp-mode'. When
|
||||||
@ -46,24 +53,13 @@ or terminating simple string."
|
|||||||
(apply fn args))))
|
(apply fn args))))
|
||||||
|
|
||||||
|
|
||||||
(use-package! csharp-tree-sitter
|
|
||||||
:when (modulep! +tree-sitter)
|
|
||||||
:defer t
|
|
||||||
:init
|
|
||||||
(add-hook 'csharp-mode-local-vars-hook #'tree-sitter! 'append)
|
|
||||||
(when (fboundp #'csharp-tree-sitter-mode)
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-tree-sitter-mode))
|
|
||||||
(when (modulep! +lsp)
|
|
||||||
(add-hook 'csharp-tree-sitter-mode-local-vars-hook #'lsp! 'append))))
|
|
||||||
|
|
||||||
|
|
||||||
;; Unity shaders
|
;; Unity shaders
|
||||||
(use-package! shader-mode
|
(use-package! shader-mode
|
||||||
:when (modulep! +unity)
|
:when (modulep! +unity)
|
||||||
:mode "\\.shader\\'"
|
:mode "\\.shader\\'"
|
||||||
:config
|
:config
|
||||||
(def-project-mode! +csharp-unity-mode
|
(def-project-mode! +csharp-unity-mode
|
||||||
:modes '(csharp-mode shader-mode)
|
:modes '(csharp-mode csharp-ts-mode shader-mode)
|
||||||
:files (and "Assets" "Library/MonoManager.asset" "Library/ScriptMapper")))
|
:files (and "Assets" "Library/MonoManager.asset" "Library/ScriptMapper")))
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user