[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csharp-mode f977800 443/459: Add indentation settings f
From: |
ELPA Syncer |
Subject: |
[elpa] externals/csharp-mode f977800 443/459: Add indentation settings for lambda functions (#229) |
Date: |
Sun, 22 Aug 2021 14:00:18 -0400 (EDT) |
branch: externals/csharp-mode
commit f977800161ccdb58d5650a8ca60017c83863d80a
Author: Joe <64441333+joefbsjr@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Add indentation settings for lambda functions (#229)
We can now control indentation of argument_list and lambda functions
separately, fixing an annoying issue that has been lingering for a long time.
---
csharp-tree-sitter.el | 38 ++++++++++++++++++++++++--------------
1 file changed, 24 insertions(+), 14 deletions(-)
diff --git a/csharp-tree-sitter.el b/csharp-tree-sitter.el
index 976519f..ad9e581 100644
--- a/csharp-tree-sitter.el
+++ b/csharp-tree-sitter.el
@@ -141,8 +141,8 @@
;; Parameter
(parameter
type: (identifier) @type
- name: (identifier) @variable)
- (parameter (identifier) @variable)
+ name: (identifier) @variable.parameter)
+ (parameter (identifier) @variable.parameter)
;; Array
(array_rank_specifier (identifier) @variable)
@@ -162,7 +162,9 @@
(type_of_expression (identifier) @variable)
;; Member access
- (member_access_expression (identifier) @function)
+ (invocation_expression (member_access_expression (generic_name (identifier)
@method.call)))
+ (invocation_expression (member_access_expression (identifier)\?
@method.call .))
+ (member_access_expression (identifier) @variable)
;; Variable
(variable_declaration (identifier) @type)
@@ -179,7 +181,7 @@
(type_parameter
(identifier) @type)
(type_argument_list
- (identifier) @type)
+ (identifier) @type.argument)
(generic_name
(identifier) @type)
(implicit_type) @type
@@ -237,15 +239,15 @@
;; (argument_list
;; (identifier) @variable) ;; causes parsing error in tree-sitter
(label_name) @variable
- (qualified_name (identifier) @type)
- (using_directive (identifier)* @type)
+ (using_directive (identifier) @type.parameter)
+ (qualified_name (identifier) @type.parameter)
+ (using_directive (name_equals (identifier) @type.parameter))
;; (await_expression (identifier)* @function) ;; crashes tree-sitter c-code
with sigabrt!
(invocation_expression (identifier) @function)
(element_access_expression (identifier) @variable)
(conditional_access_expression (identifier) @variable)
(member_binding_expression (identifier) @variable)
- (name_colon (identifier)* @variable)
- (name_equals (identifier) @type)
+ (name_colon (identifier)* @variable.special)
(field_declaration)
(argument (identifier) @variable)
@@ -262,12 +264,12 @@
(defgroup csharp-mode-indent nil "Indent lines using Tree-sitter as backend"
:group 'tree-sitter)
-(defcustom csharp-mode-indent-offset 4
- "Indent offset for csharp-mode"
+(defcustom csharp-tree-sitter-indent-offset 4
+ "Indent offset for csharp-tree-sitter-mode."
:type 'integer
:group 'csharp)
-(defvar csharp-mode-indent-scopes
+(defvar tree-sitter-indent-csharp-tree-sitter-scopes
'((indent-all . ;; these nodes are always indented
(accessor_declaration
break_statement
@@ -275,6 +277,7 @@
parameter_list
conditional_expression
constructor_initializer
+ argument_list
"."))
(indent-rest . ;; if parent node is one of these and node is not first →
indent
(
@@ -308,7 +311,15 @@
(outdent . ;; these nodes always outdent (1 shift in opposite direction)
(;; "}"
case_switch_label
+
))
+
+ (align-to-node-line . ;; this group has lists of alist (node type . (node
types... ))
+ ;; we move parentwise, searching for one of the node
+ ;; types associated with the key node type. if found,
+ ;; align key node with line where the ancestor node
+ ;; was found.
+ ((block . (lambda_expression))))
)
"Scopes for indenting in C#.")
@@ -374,8 +385,6 @@ Key bindings:
:group 'csharp
:syntax-table csharp-tree-sitter-mode-syntax-table
- (setq-local tree-sitter-indent-current-scopes csharp-mode-indent-scopes)
- (setq-local tree-sitter-indent-offset csharp-mode-indent-offset)
(setq-local indent-line-function #'tree-sitter-indent-line)
(setq-local beginning-of-defun-function #'csharp-beginning-of-defun)
(setq-local end-of-defun-function #'csharp-end-of-defun)
@@ -389,7 +398,8 @@ Key bindings:
(setq-local comment-start-skip "\\(?://+\\|/\\*+\\)\\s *")
(setq-local comment-end "")
- (tree-sitter-hl-mode))
+ (tree-sitter-hl-mode)
+ (tree-sitter-indent-mode))
(add-to-list 'tree-sitter-major-mode-language-alist '(csharp-tree-sitter-mode
. c-sharp))
- [elpa] externals/csharp-mode 1d02a54 424/459: Records and init-only fields, (continued)
- [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
- [elpa] externals/csharp-mode 98a179a 427/459: Add dependencies to csharp-mode, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 6b232b1 429/459: Much better support for strings, interpolated in particular, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode c928423 435/459: Add generic property name, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode d272272 436/459: Add let keyword, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 43e5919 438/459: Prevent c-default-style error when set to string (#202), ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 6566964 440/459: Merge pull request #231 from emacs-csharp/bugfix/tree-sitter-crashes, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 1c2b9cb 442/459: Add more nodes to beginning/end-of-defun, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode d942b27 441/459: Add tree-sitter based utility methods. (#232), ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode f977800 443/459: Add indentation settings for lambda functions (#229),
ELPA Syncer <=
- [elpa] externals/csharp-mode 40c183e 452/459: Adjust wording in readme, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 2641599 454/459: Fix spectacular mis-edit of readme, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 26f1f8c 457/459: Add switch_expression, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 69fe52b 453/459: Version bump, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 0edf059 445/459: Fix ci (#234), ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode dd30649 459/459: Bump version, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 299d3f1 450/459: Don't require tree-sitter, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 27cd2e8 456/459: Align argument to siblings, ELPA Syncer, 2021/08/22
- [elpa] externals/csharp-mode 573f23c 458/459: Assign copyright over to the FSF, ELPA Syncer, 2021/08/22