[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csharp-mode 53fa8f1 404/459: Use dedicated major mode f
From: |
ELPA Syncer |
Subject: |
[elpa] externals/csharp-mode 53fa8f1 404/459: Use dedicated major mode for tree-sitter |
Date: |
Sun, 22 Aug 2021 14:00:10 -0400 (EDT) |
branch: externals/csharp-mode
commit 53fa8f11996d1db7d446d603acdb6abde49a22da
Author: Theodor Thornhill <theo@thornhill.no>
Commit: Theodor Thornhill <theo@thornhill.no>
Use dedicated major mode for tree-sitter
---
README.org | 9 +++++++--
csharp-mode.el | 55 ++++++++++++++-------------------------------------
csharp-tree-sitter.el | 27 ++++++++++++++++++++++++-
3 files changed, 48 insertions(+), 43 deletions(-)
diff --git a/README.org b/README.org
index 1c673ff..4e82552 100644
--- a/README.org
+++ b/README.org
@@ -26,8 +26,13 @@ You can enable experimental tree sitter support for
indentation and highlighting
(use-package tree-sitter-langs)
(use-package csharp-mode
- :init
- (setq csharp-mode-enable-tree-sitter t))
+ :straight
+ (csharp-mode :type git
+ :host github
+ :repo "emacs-csharp/csharp-mode"
+ :branch "tree-sitter")
+ :config
+ (add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-tree-sitter-mode)))
#+end_src
If you are using this, clearly state so if you find any issues.
diff --git a/csharp-mode.el b/csharp-mode.el
index 93f1226..fab8608 100644
--- a/csharp-mode.el
+++ b/csharp-mode.el
@@ -40,13 +40,6 @@
"Major mode for editing C# code."
:group 'prog-mode)
-(defcustom csharp-mode-enable-tree-sitter nil
- "Use tree sitter for font locking and indentation."
- :type 'boolean)
-
-(defvar csharp-mode-tree-sitter-patterns)
-(defun csharp-mode-indent-line ())
-
(eval-and-compile
(defconst csharp--regex-identifier
"[A-Za-z][A-Za-z0-9_]*"
@@ -646,16 +639,15 @@ compilation and evaluation time conflicts."
;;; End of fix for strings on version 27.1
-(eval-and-compile
- (unless csharp-mode-enable-tree-sitter
- (defvar csharp-mode-syntax-table
- (funcall (c-lang-const c-make-mode-syntax-table csharp))
- "Syntax table used in csharp-mode buffers.")
- (defvar csharp-mode-map
- (let ((map (c-make-inherited-keymap)))
- map)
- "Keymap used in csharp-mode buffers.")))
+(defvar csharp-mode-syntax-table
+ (funcall (c-lang-const c-make-mode-syntax-table csharp))
+ "Syntax table used in csharp-mode buffers.")
+
+(defvar csharp-mode-map
+ (let ((map (c-make-inherited-keymap)))
+ map)
+ "Keymap used in csharp-mode buffers.")
(easy-menu-define csharp-mode-menu csharp-mode-map "C# Mode Commands"
(cons "C#" (c-lang-const c-mode-menu csharp)))
@@ -676,30 +668,13 @@ compilation and evaluation time conflicts."
Key bindings:
\\{csharp-mode-map}"
- :group 'csharp
-
- (if csharp-mode-enable-tree-sitter
- (progn
- (require 'csharp-tree-sitter)
- (setq-local indent-line-function #'csharp-mode-indent-line)
-
- ;; https://github.com/ubolonton/emacs-tree-sitter/issues/84
- (unless font-lock-defaults
- (setq font-lock-defaults '(nil)))
- (setq-local tree-sitter-hl-default-patterns
csharp-mode-tree-sitter-patterns)
- ;; Comments
- (setq-local comment-start "// ")
- (setq-local comment-end "")
-
- (tree-sitter-hl-mode))
- (progn
- :after-hook (c-update-modeline)
- (c-initialize-cc-mode t)
- (c-init-language-vars csharp-mode)
- (c-common-init 'csharp-mode)
- (easy-menu-add csharp-mode-menu)
- (setq-local c-doc-comment-style '((csharp-mode . codedoc)))
- (c-run-mode-hooks 'c-mode-common-hook 'csharp-mode-hook))))
+ :after-hook (c-update-modeline)
+ (c-initialize-cc-mode t)
+ (c-init-language-vars csharp-mode)
+ (c-common-init 'csharp-mode)
+ (easy-menu-add csharp-mode-menu)
+ (setq-local c-doc-comment-style '((csharp-mode . codedoc)))
+ (c-run-mode-hooks 'c-mode-common-hook 'csharp-mode-hook))
(provide 'csharp-mode)
diff --git a/csharp-tree-sitter.el b/csharp-tree-sitter.el
index 354003a..88db003 100644
--- a/csharp-tree-sitter.el
+++ b/csharp-tree-sitter.el
@@ -629,7 +629,32 @@ See `csharp-mode-indent-line'. ORIGINAL-COLUMN is
forwarded to
(tsc-node-type indenting-node)
tree-sitter-tree-before)))
-;;; End of tree-sitter
+
+;;;###autoload
+(define-derived-mode csharp-tree-sitter-mode prog-mode "C#"
+ "Major mode for editing Csharp code.
+
+Key bindings:
+\\{csharp-mode-map}"
+ :group 'csharp
+
+ (setq csharp-mode-syntax-table nil)
+ (setq csharp-mode-map nil)
+ (require 'csharp-tree-sitter)
+ (setq-local indent-line-function #'csharp-mode-indent-line)
+
+ ;; https://github.com/ubolonton/emacs-tree-sitter/issues/84
+ (unless font-lock-defaults
+ (setq font-lock-defaults '(nil)))
+ (setq-local tree-sitter-hl-default-patterns csharp-mode-tree-sitter-patterns)
+ ;; Comments
+ (setq-local comment-start "// ")
+ (setq-local comment-end "")
+
+ (tree-sitter-hl-mode))
+
+;;;###autoload
+(add-to-list 'tree-sitter-major-mode-language-alist '(csharp-tree-sitter-mode
. c-sharp))
(provide 'csharp-tree-sitter)
- [elpa] externals/csharp-mode 1bd2d62 377/459: Make attribute-fontification consistent, (continued)
- [elpa] externals/csharp-mode 1bd2d62 377/459: Make attribute-fontification consistent, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 0ebd21a 381/459: Remove CC Mode and add tree-sitter-indent :O, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode b6b7661 380/459: Add this expression, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 5374fe3 382/459: Add some indent rules, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 878c671 390/459: Try add better support for interfaces., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode e30ed5e 393/459: Indent feature parity with previous implementation, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 45d1e9f 395/459: These are passing again, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 5a3d4a9 396/459: More indentation fixes, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 0b1df32 398/459: Add tree-sitter as optional feature, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode f0b5efa 403/459: Use code with same arrangement as before rework, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 53fa8f1 404/459: Use dedicated major mode for tree-sitter,
ELPA Syncer <=
- [elpa] externals/csharp-mode ea1718e 405/459: Use defvar instead of defcustom for indentation rules, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 5ddb761 406/459: Fix url and indentation., ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 76bbf26 408/459: Merge pull request #206 from jcs-PR/minor, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode f937426 409/459: Merge branch 'master' into tree-sitter, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 3cff337 411/459: Merge pull request #204 from emacs-csharp/tree-sitter, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 4947497 412/459: Update readme to reflect tree-sitter in master, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 064f481 418/459: Fix autoload for tree-sitter support (#211), ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 1de6556 422/459: Add base_list, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 1d02a54 424/459: Records and init-only fields, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 7d4af0d 425/459: Add with_expression, ELPA Syncer, 2021/08/22