Add textobjects and indents to c and cpp (#1293)

Indentation of single line statements doesn't work, i.e.

  for (;;)<hit enter>
leads to
  for(;;)
  <cursor here>

Only blocks with curly braces are indented.
This commit is contained in:
Sebastian Neubauer 2022-01-04 02:53:04 +01:00 committed by GitHub
parent 641255ccc8
commit 5b1a628e81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 55 additions and 2 deletions

View file

@ -1,11 +1,11 @@
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default LSP |
| --- | --- | --- | --- | --- |
| bash | ✓ | | | `bash-language-server` |
| c | ✓ | | | `clangd` |
| c | ✓ | | | `clangd` |
| c-sharp | ✓ | | | |
| cmake | ✓ | ✓ | ✓ | `cmake-language-server` |
| comment | ✓ | | | |
| cpp | ✓ | | | `clangd` |
| cpp | ✓ | | | `clangd` |
| css | ✓ | | | |
| dart | ✓ | | ✓ | `dart` |
| dockerfile | ✓ | | | `docker-langserver` |

View file

@ -0,0 +1,16 @@
indent = [
"compound_statement",
"field_declaration_list",
"enumerator_list",
"parameter_list",
"init_declarator",
"case_statement",
"condition_clause",
"expression_statement",
]
outdent = [
"case",
"}",
"]",
]

View file

@ -0,0 +1,13 @@
(function_definition
body: (_) @function.inside) @function.around
(struct_specifier
body: (_) @class.inside) @class.around
(enum_specifier
body: (_) @class.inside) @class.around
(union_specifier
body: (_) @class.inside) @class.around
(parameter_declaration) @parameter.inside

View file

@ -0,0 +1,17 @@
indent = [
"compound_statement",
"field_declaration_list",
"enumerator_list",
"parameter_list",
"init_declarator",
"case_statement",
"condition_clause",
"expression_statement",
]
outdent = [
"case",
"access_specifier",
"}",
"]",
]

View file

@ -0,0 +1,7 @@
; inherits: c
(lambda_expression
body: (_) @function.inside) @function.around
(class_specifier
body: (_) @class.inside) @class.around