branch: externals/csharp-mode
commit f94e5a7e03bf900c0911fe8ac50db5e0ccc87d2e
Author: Theodor Thornhill <t...@thornhill.no>
Commit: Theodor Thornhill <t...@thornhill.no>

    More extracting
---
 csharp-mode.el | 78 ++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 49 insertions(+), 29 deletions(-)

diff --git a/csharp-mode.el b/csharp-mode.el
index be6c527..24739bd 100644
--- a/csharp-mode.el
+++ b/csharp-mode.el
@@ -182,7 +182,8 @@
 (defcustom csharp-mode-literal
   '([(real_literal) (integer_literal)] @number
     (null_literal) @constant
-    (boolean_literal) @constant)
+    (boolean_literal) @constant
+    (character_literal) @string)
   "Patterns for literals in csharp-mode.")
 
 (defcustom csharp-mode-linq
@@ -219,7 +220,8 @@
      type: (identifier) @type
      name: (identifier) @variable)
     (class_declaration
-     name: (identifier) @type))
+     name: (identifier) @type)
+    (constructor_declaration (identifier) @type))
   "Patterns for classes in csharp-mode.")
 
 (defcustom csharp-mode-method
@@ -247,6 +249,43 @@
     (attribute (identifier) @variable))
   "Patterns for attributes in csharp-mode.")
 
+(defcustom csharp-mode-object-init
+  '((anonymous_object_creation_expression)
+    (object_creation_expression (identifier) @type)
+    (initializer_expression (identifier) @variable))
+  "Patterns for object initialization in csharp-mode.")
+
+(defcustom csharp-mode-variable
+  '((variable_declaration (identifier) @type)
+    (variable_declarator (identifier) @variable))
+  "Patterns for variables in csharp-mode.")
+
+(defcustom csharp-mode-type
+  '((type_parameter
+     (identifier) @type)
+    (type_argument_list
+     (identifier) @type)
+    (generic_name
+     (identifier) @type)
+    (implicit_type) @type)
+  "Patterns for types in csharp-mode.")
+
+(defcustom csharp-mode-expression
+  '((binary_expression (identifier) @variable (identifier) @variable)
+    (binary_expression (identifier)* @variable)
+    (conditional_expression (identifier) @variable)
+    (prefix_unary_expression (identifier)* @variable)
+    (postfix_unary_expression (identifier)* @variable)
+    (type_of_expression (identifier) @variable)
+    (assignment_expression (identifier) @variable)
+    (cast_expression (identifier) @type))
+  "Patterns for expressions in csharp-mode.")
+
+(defcustom csharp-mode-preprocessor
+  '((preprocessor_directive) @constant
+    (preprocessor_call (identifier) @string))
+  "Patterns for preprocessors in csharp-mode.")
+
 ;;;###autoload
 (define-derived-mode csharp-mode prog-mode "C#"
   "Major mode for editing Csharp code.
@@ -306,51 +345,32 @@ Key bindings:
                              csharp-mode-parameter
                              csharp-mode-array
                              csharp-mode-attribute
-                             '(
-                               (qualified_name (identifier) @type)
+                             csharp-mode-object-init
+                             csharp-mode-variable
+                             csharp-mode-type
+                             csharp-mode-expression
+                             csharp-mode-preprocessor
+                             '((qualified_name (identifier) @type)
                                (using_directive (identifier)* @type)
-                               (implicit_type) @type
                                (predefined_type) @type
                                (await_expression (identifier)* @function)
                                (invocation_expression (identifier) @function)
-                               (initializer_expression (identifier) @variable)
                                (element_access_expression (identifier) 
@variable)
                                (conditional_access_expression (identifier) 
@variable)
                                (member_binding_expression (identifier) 
@variable)
                                (member_access_expression (identifier) 
@function)
                                (name_colon (identifier)* @variable)
-                               (type_parameter
-                                (identifier) @type)
-                               (type_argument_list
-                                (identifier) @type)
-                               (generic_name
-                                (identifier) @type)
                                (name_equals (identifier) @type)
-                               (anonymous_object_creation_expression)
-                               (object_creation_expression (identifier) @type)
-                               (character_literal) @string
-                               (binary_expression (identifier) @variable 
(identifier) @variable)
-                               (binary_expression (identifier)* @variable)
-                               (conditional_expression (identifier) @variable)
                                ;; foreach
                                (for_each_statement (identifier) @type 
(identifier) @variable (identifier) @variable)
                                (field_declaration)
-                               (constructor_declaration (identifier) @type)
+
                                ;; Unary expressions
-                               (prefix_unary_expression (identifier)* 
@variable)
-                               (postfix_unary_expression (identifier)* 
@variable)
                                (nullable_type) @type
-                               (type_of_expression (identifier) @variable)
-                               (assignment_expression (identifier) @variable) 
-                               (preprocessor_directive) @constant
-                               (preprocessor_call (identifier) @string)
                                (argument (identifier) @variable)
                                ;; switch statement
                                (switch_statement (identifier) @variable)
-                               ;; Casts
-                               (cast_expression (identifier) @type)
-                               (variable_declaration (identifier) @type)
-                               (variable_declarator (identifier) @variable)))))
+                               ))))
   (tree-sitter-hl-mode))
 
 ;;;###autoload

Reply via email to