branch: externals/csharp-mode
commit f94e5a7e03bf900c0911fe8ac50db5e0ccc87d2e
Author: Theodor Thornhill <[email protected]>
Commit: Theodor Thornhill <[email protected]>
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