Variable: csharp-ts-mode-map
csharp-ts-mode-map is a variable defined in csharp-mode.el.gz.
Value
Documentation
Keymap for csharp-ts-mode.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/csharp-mode.el.gz
;;;###autoload
(define-derived-mode csharp-ts-mode prog-mode "C#"
"Major mode for editing C# code."
:syntax-table (csharp--make-mode-syntax-table)
(unless (treesit-ensure-installed 'c-sharp)
(error "Tree-sitter for C# isn't available"))
;; Tree-sitter.
(setq treesit-primary-parser (treesit-parser-create 'c-sharp))
;; Comments.
(c-ts-common-comment-setup)
(setq-local treesit-thing-settings
`((c-sharp
(list
,(rx bos (or "global_attribute"
"attribute_argument_list"
"attribute_list"
"enum_member_declaration_list"
"type_parameter_list"
"declaration_list"
"accessor_list"
"bracketed_parameter_list"
"parameter_list"
"argument_list"
"tuple_pattern"
"block"
"bracketed_argument_list"
"type_argument_list"
"array_rank_specifier"
"function_pointer_type"
"tuple_type"
"_for_statement_conditions"
"switch_body"
"catch_declaration"
"catch_filter_clause"
"parenthesized_pattern"
"list_pattern"
"positional_pattern_clause"
"property_pattern_clause"
"parenthesized_variable_designation"
"_switch_expression_body"
"interpolated_string_expression"
"interpolation"
"parenthesized_expression"
"_parenthesized_lvalue_expression"
"anonymous_object_creation_expression"
"initializer_expression"
"_with_body"
"tuple_expression"
"preproc_parenthesized_expression")
eos))
(sentence
,(rx bos (or "extern_alias_directive"
"using_directive"
"file_scoped_namespace_declaration"
"enum_declaration"
"delegate_declaration"
"_declaration_list_body"
"field_declaration"
"event_declaration"
"event_field_declaration"
"indexer_declaration"
"property_declaration"
"_function_body"
"break_statement"
"continue_statement"
"do_statement"
"empty_statement"
"expression_statement"
"return_statement"
"yield_statement"
"throw_statement"
"goto_statement"
"local_declaration_statement")
eos))
(text
,(regexp-opt '("comment"
"verbatim_string-literal"
"interpolated_verbatim_string-text"))))))
;; Indent.
(setq-local treesit-simple-indent-rules csharp-ts-mode--indent-rules)
;; Electric
(setq-local electric-indent-chars
(append "{}():;," electric-indent-chars))
;; Navigation.
(setq-local treesit-defun-type-regexp "declaration")
(setq-local treesit-defun-name-function #'csharp-ts-mode--defun-name)
;; Font-lock.
(setq-local treesit-font-lock-settings (csharp-ts-mode--font-lock-settings))
(setq-local treesit-font-lock-feature-list
'(( comment definition)
( keyword string type directives)
( constant escape-sequence expression literal attribute)
( function bracket delimiter error)))
;; Imenu.
(setq-local treesit-simple-imenu-settings
'(("Class" "\\`class_declaration\\'" nil nil)
("Interface" "\\`interface_declaration\\'" nil nil)
("Enum" "\\`enum_declaration\\'" nil nil)
("Record" "\\`record_declaration\\'" nil nil)
("Struct" "\\`struct_declaration\\'" nil nil)
("Method" "\\`method_declaration\\'" nil nil)))
;; Outline minor mode.
(setq-local treesit-outline-predicate
(rx bos (or "namespace_declaration"
"class_declaration"
"interface_declaration"
"enum_declaration"
"record_declaration"
"struct_declaration"
"method_declaration"
"local_function_statement")
eos))
(treesit-major-mode-setup))