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)
|
||||
:config
|
||||
(set-formatter! 'csharpier '("csharpier" "format" "--write-stdout")
|
||||
:modes '(csharp-mode))
|
||||
(set-electric! 'csharp-mode :chars '(?\n ?\}))
|
||||
(set-rotate-patterns! 'csharp-mode
|
||||
:modes '(csharp-mode csharp-ts-mode))
|
||||
(set-electric! '(csharp-mode csharp-ts-mode) :chars '(?\n ?\}))
|
||||
(set-rotate-patterns! '(csharp-mode csharp-ts-mode)
|
||||
:symbols '(("public" "protected" "private")
|
||||
("class" "struct")))
|
||||
(set-ligatures! 'csharp-mode
|
||||
(set-ligatures! '(csharp-mode csharp-ts-mode)
|
||||
;; Functional
|
||||
:lambda "() =>"
|
||||
;; Types
|
||||
@ -30,12 +30,19 @@
|
||||
:return "return"
|
||||
:yield "yield")
|
||||
|
||||
(sp-local-pair 'csharp-mode "<" ">"
|
||||
(sp-local-pair '(csharp-mode csharp-ts-mode) "<" ">"
|
||||
:when '(+csharp-sp-point-in-type-p)
|
||||
:post-handlers '(("| " "SPC")))
|
||||
|
||||
(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)
|
||||
"This turns off `c-clear-string-fences' for `csharp-mode'. When
|
||||
@ -46,24 +53,13 @@ or terminating simple string."
|
||||
(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
|
||||
(use-package! shader-mode
|
||||
:when (modulep! +unity)
|
||||
:mode "\\.shader\\'"
|
||||
:config
|
||||
(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")))
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user