From e160db4c78969f8f93b5db4e756eabcc1926eb1a Mon Sep 17 00:00:00 2001 From: Erasin Date: Wed, 27 Jul 2022 18:38:58 +0800 Subject: [PATCH 1/7] Add textobject for javascript --- runtime/queries/javascript/textobjects.scm | 35 ++++++++++++++++++++++ runtime/queries/jsx/textobjects.scm | 1 + runtime/queries/tsx/indents.scm | 1 + runtime/queries/tsx/textobjects.scm | 1 + runtime/queries/typescript/textobjects.scm | 1 + 5 files changed, 39 insertions(+) create mode 100644 runtime/queries/javascript/textobjects.scm create mode 100644 runtime/queries/jsx/textobjects.scm create mode 100644 runtime/queries/tsx/indents.scm create mode 100644 runtime/queries/tsx/textobjects.scm create mode 100644 runtime/queries/typescript/textobjects.scm diff --git a/runtime/queries/javascript/textobjects.scm b/runtime/queries/javascript/textobjects.scm new file mode 100644 index 000000000000..e651fd61640d --- /dev/null +++ b/runtime/queries/javascript/textobjects.scm @@ -0,0 +1,35 @@ +(function_declaration + body: (statement_block)) @function.around + +(function + body: (statement_block)) @function.around + +(export_statement + (function_declaration) @function.around) @function.around.start + +(arrow_function + body: (statement_block)) @function.around + +(method_definition + body: (statement_block)) @function.around + +(class_declaration + body: (class_body) @class.inside) @class.around + +(export_statement + (class_declaration) @class.around) @class.around.start + +(export_statement + (class) @class.around) @class.around.start + +(_ (statement_block) @block.inside) @block.around + +(formal_parameters + ((_) @parameter.inside . ","? @parameter.around) @parameter.around) + +(arguments + ((_) @parameter.inside . ","? @parameter.around) @parameter.around) + +(comment) @comment.inside + +(comment)+ @comment.around diff --git a/runtime/queries/jsx/textobjects.scm b/runtime/queries/jsx/textobjects.scm new file mode 100644 index 000000000000..ff0ddfacf135 --- /dev/null +++ b/runtime/queries/jsx/textobjects.scm @@ -0,0 +1 @@ +; inherits: javascript diff --git a/runtime/queries/tsx/indents.scm b/runtime/queries/tsx/indents.scm new file mode 100644 index 000000000000..1b61e36da3ca --- /dev/null +++ b/runtime/queries/tsx/indents.scm @@ -0,0 +1 @@ +; inherits: typescript diff --git a/runtime/queries/tsx/textobjects.scm b/runtime/queries/tsx/textobjects.scm new file mode 100644 index 000000000000..07391231c635 --- /dev/null +++ b/runtime/queries/tsx/textobjects.scm @@ -0,0 +1 @@ +; inherits: typescript,jsx diff --git a/runtime/queries/typescript/textobjects.scm b/runtime/queries/typescript/textobjects.scm new file mode 100644 index 000000000000..ff0ddfacf135 --- /dev/null +++ b/runtime/queries/typescript/textobjects.scm @@ -0,0 +1 @@ +; inherits: javascript From 835d38a90b4ed4c0e7b78cd2696c3bc0854fbe06 Mon Sep 17 00:00:00 2001 From: Erasin Date: Wed, 27 Jul 2022 19:43:24 +0800 Subject: [PATCH 2/7] Fix function && class --- book/src/generated/lang-support.md | 8 ++++---- runtime/queries/javascript/textobjects.scm | 12 +++++------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 6b938def1eef..6be6101a558e 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -45,10 +45,10 @@ | idris | | | | `idris2-lsp` | | iex | ✓ | | | | | java | ✓ | | | `jdtls` | -| javascript | ✓ | | ✓ | `typescript-language-server` | +| javascript | ✓ | ✓ | ✓ | `typescript-language-server` | | jsdoc | ✓ | | | | | json | ✓ | | ✓ | `vscode-json-language-server` | -| jsx | ✓ | | ✓ | `typescript-language-server` | +| jsx | ✓ | ✓ | ✓ | `typescript-language-server` | | julia | ✓ | | | `julia` | | kotlin | ✓ | | | `kotlin-language-server` | | latex | ✓ | | | `texlab` | @@ -97,9 +97,9 @@ | tfvars | | | | `terraform-ls` | | toml | ✓ | | | `taplo` | | tsq | ✓ | | | | -| tsx | ✓ | | | `typescript-language-server` | +| tsx | ✓ | ✓ | ✓ | `typescript-language-server` | | twig | ✓ | | | | -| typescript | ✓ | | ✓ | `typescript-language-server` | +| typescript | ✓ | ✓ | ✓ | `typescript-language-server` | | ungrammar | ✓ | | | | | v | ✓ | | | `vls` | | vala | ✓ | | | `vala-language-server` | diff --git a/runtime/queries/javascript/textobjects.scm b/runtime/queries/javascript/textobjects.scm index e651fd61640d..cd2cbcf0efaa 100644 --- a/runtime/queries/javascript/textobjects.scm +++ b/runtime/queries/javascript/textobjects.scm @@ -13,16 +13,14 @@ (method_definition body: (statement_block)) @function.around +(generator_function_declaration + body: (_) @function.inside) @function.around + (class_declaration body: (class_body) @class.inside) @class.around -(export_statement - (class_declaration) @class.around) @class.around.start - -(export_statement - (class) @class.around) @class.around.start - -(_ (statement_block) @block.inside) @block.around +(class + (class_body) @class.inside) @class.around (formal_parameters ((_) @parameter.inside . ","? @parameter.around) @parameter.around) From a7d0b7fb96b15bf40fce9d52a4429722d3de976e Mon Sep 17 00:00:00 2001 From: Erasin Date: Wed, 27 Jul 2022 20:02:28 +0800 Subject: [PATCH 3/7] js textobject function and class fix some --- runtime/queries/javascript/textobjects.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runtime/queries/javascript/textobjects.scm b/runtime/queries/javascript/textobjects.scm index cd2cbcf0efaa..7ee0da71570c 100644 --- a/runtime/queries/javascript/textobjects.scm +++ b/runtime/queries/javascript/textobjects.scm @@ -5,7 +5,7 @@ body: (statement_block)) @function.around (export_statement - (function_declaration) @function.around) @function.around.start + declaration: (function_declaration) @function.around) (arrow_function body: (statement_block)) @function.around @@ -22,6 +22,9 @@ (class (class_body) @class.inside) @class.around +(export_statement + declaration: (class_declaration) @class.around) + (formal_parameters ((_) @parameter.inside . ","? @parameter.around) @parameter.around) From 3a8d44ad8cbaae00ee8ac19fd3ff1345f747f07c Mon Sep 17 00:00:00 2001 From: Erasin Date: Thu, 28 Jul 2022 11:30:56 +0800 Subject: [PATCH 4/7] fix js statement_block , and add ts interface/type as class --- runtime/queries/javascript/textobjects.scm | 16 ++++++++-------- runtime/queries/typescript/textobjects.scm | 6 ++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/runtime/queries/javascript/textobjects.scm b/runtime/queries/javascript/textobjects.scm index 7ee0da71570c..3887507e4afc 100644 --- a/runtime/queries/javascript/textobjects.scm +++ b/runtime/queries/javascript/textobjects.scm @@ -1,17 +1,14 @@ (function_declaration - body: (statement_block)) @function.around + body: (_)) @function.around (function - body: (statement_block)) @function.around - -(export_statement - declaration: (function_declaration) @function.around) + body: (_)) @function.around (arrow_function - body: (statement_block)) @function.around + body: (_)) @function.around (method_definition - body: (statement_block)) @function.around + body: (_)) @function.around (generator_function_declaration body: (_) @function.inside) @function.around @@ -23,7 +20,10 @@ (class_body) @class.inside) @class.around (export_statement - declaration: (class_declaration) @class.around) + declaration: [ + (function_declaration) @function.around + (class_declaration) @class.around + ]) (formal_parameters ((_) @parameter.inside . ","? @parameter.around) @parameter.around) diff --git a/runtime/queries/typescript/textobjects.scm b/runtime/queries/typescript/textobjects.scm index ff0ddfacf135..49ce6c5786fe 100644 --- a/runtime/queries/typescript/textobjects.scm +++ b/runtime/queries/typescript/textobjects.scm @@ -1 +1,7 @@ ; inherits: javascript + +(interface_declaration + name: (_) ) @class.around + +(type_alias_declaration + name: (_) ) @class.around From f8e123b52bb2f632c40dc427a16dc598b1f92d1c Mon Sep 17 00:00:00 2001 From: Erasin Date: Thu, 28 Jul 2022 19:26:02 +0800 Subject: [PATCH 5/7] mark function.inside for js --- runtime/queries/javascript/textobjects.scm | 8 ++++---- runtime/queries/typescript/textobjects.scm | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/runtime/queries/javascript/textobjects.scm b/runtime/queries/javascript/textobjects.scm index 3887507e4afc..c80dc81b4cc7 100644 --- a/runtime/queries/javascript/textobjects.scm +++ b/runtime/queries/javascript/textobjects.scm @@ -1,14 +1,14 @@ (function_declaration - body: (_)) @function.around + body: (_) @function.inside) @function.around (function - body: (_)) @function.around + body: (_) @function.inside) @function.around (arrow_function - body: (_)) @function.around + body: (_) @function.inside) @function.around (method_definition - body: (_)) @function.around + body: (_) @function.inside) @function.around (generator_function_declaration body: (_) @function.inside) @function.around diff --git a/runtime/queries/typescript/textobjects.scm b/runtime/queries/typescript/textobjects.scm index 49ce6c5786fe..21b41f826411 100644 --- a/runtime/queries/typescript/textobjects.scm +++ b/runtime/queries/typescript/textobjects.scm @@ -1,7 +1,6 @@ ; inherits: javascript -(interface_declaration - name: (_) ) @class.around - -(type_alias_declaration - name: (_) ) @class.around +[ +(interface_declaration) +(type_alias_declaration) +] @class.around From 4a2b560e2856517f9d91aab0ebff41501b5aa7a8 Mon Sep 17 00:00:00 2001 From: Erasin Date: Thu, 28 Jul 2022 19:34:56 +0800 Subject: [PATCH 6/7] format ts --- runtime/queries/typescript/textobjects.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/queries/typescript/textobjects.scm b/runtime/queries/typescript/textobjects.scm index 21b41f826411..fcbdab25519d 100644 --- a/runtime/queries/typescript/textobjects.scm +++ b/runtime/queries/typescript/textobjects.scm @@ -1,6 +1,6 @@ ; inherits: javascript [ -(interface_declaration) -(type_alias_declaration) + (interface_declaration) + (type_alias_declaration) ] @class.around From 28f05278a45030ed7a476d6b083fc00d146e497e Mon Sep 17 00:00:00 2001 From: Erasin Date: Thu, 28 Jul 2022 19:46:49 +0800 Subject: [PATCH 7/7] add class.inside for typescript --- runtime/queries/typescript/textobjects.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/runtime/queries/typescript/textobjects.scm b/runtime/queries/typescript/textobjects.scm index fcbdab25519d..8564236be522 100644 --- a/runtime/queries/typescript/textobjects.scm +++ b/runtime/queries/typescript/textobjects.scm @@ -1,6 +1,8 @@ ; inherits: javascript [ - (interface_declaration) - (type_alias_declaration) + (interface_declaration + body:(_) @class.inside) + (type_alias_declaration + value: (_) @class.inside) ] @class.around