summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Bogarín2022-08-27 14:24:47 +0000
committerGitHub2022-08-27 14:24:47 +0000
commite06678278267a76a1d9e29b36d4734bcb39eabec (patch)
treeec21288ba4d1adb72cbbeb6d3fd943a9791301ba
parent86a8ea57bb3cb651cf9bee3fd1ae37f7e134c526 (diff)
Add c-sharp textobjects (#3494)
Co-authored-by: Gustavo Bogarín <gbogarin@outlook.com> Co-authored-by: Gustavo Bogarín <gbogarin@posibillian.tech>
-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