aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--book/src/generated/lang-support.md2
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/c-sharp/highlights.scm15
-rw-r--r--runtime/queries/c-sharp/textobjects.scm21
4 files changed, 36 insertions, 4 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 8d8275ab..9a1d5b92 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -4,7 +4,7 @@
| bash | ✓ | | | `bash-language-server` |
| beancount | ✓ | | | |
| c | ✓ | ✓ | ✓ | `clangd` |
-| c-sharp | ✓ | | | `OmniSharp` |
+| c-sharp | ✓ | ✓ | | `OmniSharp` |
| cairo | ✓ | | | |
| clojure | ✓ | | | `clojure-lsp` |
| cmake | ✓ | ✓ | ✓ | `cmake-language-server` |
diff --git a/languages.toml b/languages.toml
index 986b927e..d125ae88 100644
--- a/languages.toml
+++ b/languages.toml
@@ -235,7 +235,7 @@ language-server = { command = "OmniSharp", args = [ "--languageserver" ] }
[[grammar]]
name = "c-sharp"
-source = { git = "https://github.com/tree-sitter/tree-sitter-c-sharp", rev = "53a65a908167d6556e1fcdb67f1ee62aac101dda" }
+source = { git = "https://github.com/tree-sitter/tree-sitter-c-sharp", rev = "9c494a503c8e2044bfffce57f70b480c01a82f03" }
[[language]]
name = "go"
diff --git a/runtime/queries/c-sharp/highlights.scm b/runtime/queries/c-sharp/highlights.scm
index 6b94dd8c..dbb7c778 100644
--- a/runtime/queries/c-sharp/highlights.scm
+++ b/runtime/queries/c-sharp/highlights.scm
@@ -228,8 +228,19 @@
"let"
] @keyword
-(preprocessor_call) @keyword.directive
-(preprocessor_call (_) @keyword.directive)
+(nullable_directive) @keyword.directive
+(define_directive) @keyword.directive
+(undef_directive) @keyword.directive
+(if_directive) @keyword.directive
+(else_directive) @keyword.directive
+(elif_directive) @keyword.directive
+(endif_directive) @keyword.directive
+(region_directive) @keyword.directive
+(endregion_directive) @keyword.directive
+(error_directive) @keyword.directive
+(warning_directive) @keyword.directive
+(line_directive) @keyword.directive
+(pragma_directive) @keyword.directive
;; Linq
(from_clause (identifier) @variable)
diff --git a/runtime/queries/c-sharp/textobjects.scm b/runtime/queries/c-sharp/textobjects.scm
new file mode 100644
index 00000000..c5afe5f4
--- /dev/null
+++ b/runtime/queries/c-sharp/textobjects.scm
@@ -0,0 +1,21 @@
+[
+ (class_declaration body: (_) @class.inside)
+ (struct_declaration body: (_) @class.inside)
+ (interface_declaration body: (_) @class.inside)
+ (enum_declaration body: (_) @class.inside)
+ (delegate_declaration)
+ (record_declaration body: (_) @class.inside)
+ (record_struct_declaration body: (_) @class.inside)
+] @class.around
+
+(constructor_declaration body: (_) @function.inside) @function.around
+
+(destructor_declaration body: (_) @function.inside) @function.around
+
+(method_declaration body: (_) @function.inside) @function.around
+
+(property_declaration (_) @function.inside) @function.around
+
+(parameter (_) @parameter.inside) @parameter.around
+
+(comment)+ @comment.around