on master help sign in
Add textobjects and indents to c and cpp (#1293)
5b1a628Sebastian Neubauer
book/src/generated/lang-support.md+2−2
@@ -1,11 +1,11 @@
1| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default LSP |
1| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default LSP |
2| --- | --- | --- | --- | --- |
2| --- | --- | --- | --- | --- |
3| bash | ✓ | | | `bash-language-server` |
3| bash | ✓ | | | `bash-language-server` |
4−| c | ✓ | | | `clangd` |
4+| c | ✓ | ✓ | ✓ | `clangd` |
5| c-sharp | ✓ | | | |
5| c-sharp | ✓ | | | |
6| cmake | ✓ | ✓ | ✓ | `cmake-language-server` |
6| cmake | ✓ | ✓ | ✓ | `cmake-language-server` |
7| comment | ✓ | | | |
7| comment | ✓ | | | |
8−| cpp | ✓ | | | `clangd` |
8+| cpp | ✓ | ✓ | ✓ | `clangd` |
9| css | ✓ | | | |
9| css | ✓ | | | |
10| dart | ✓ | | ✓ | `dart` |
10| dart | ✓ | | ✓ | `dart` |
11| dockerfile | ✓ | | | `docker-langserver` |
11| dockerfile | ✓ | | | `docker-langserver` |
runtime/queries/c/indents.tomlnew file+16
@@ -0,0 +1,16 @@
1+indent = [
2+ "compound_statement",
3+ "field_declaration_list",
4+ "enumerator_list",
5+ "parameter_list",
6+ "init_declarator",
7+ "case_statement",
8+ "condition_clause",
9+ "expression_statement",
10+]
11+
12+outdent = [
13+ "case",
14+ "}",
15+ "]",
16+]
runtime/queries/c/textobjects.scmnew file+13
@@ -0,0 +1,13 @@
1+(function_definition
2+ body: (_) @function.inside) @function.around
3+
4+(struct_specifier
5+ body: (_) @class.inside) @class.around
6+
7+(enum_specifier
8+ body: (_) @class.inside) @class.around
9+
10+(union_specifier
11+ body: (_) @class.inside) @class.around
12+
13+(parameter_declaration) @parameter.inside
runtime/queries/cpp/indents.tomlnew file+17
@@ -0,0 +1,17 @@
1+indent = [
2+ "compound_statement",
3+ "field_declaration_list",
4+ "enumerator_list",
5+ "parameter_list",
6+ "init_declarator",
7+ "case_statement",
8+ "condition_clause",
9+ "expression_statement",
10+]
11+
12+outdent = [
13+ "case",
14+ "access_specifier",
15+ "}",
16+ "]",
17+]
runtime/queries/cpp/textobjects.scmnew file+7
@@ -0,0 +1,7 @@
1+; inherits: c
2+
3+(lambda_expression
4+ body: (_) @function.inside) @function.around
5+
6+(class_specifier
7+ body: (_) @class.inside) @class.around