From 4d619805be1124ca3791f66c5a0d0eeb50175710 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Sat, 9 Dec 2023 09:45:45 +0100 Subject: [PATCH 1/5] Terser leading/trailing syntax in scm --- .../TreeSitterScopeHandler.ts | 44 ++++++------ queries/html.scm | 8 +-- queries/java.scm | 12 ++-- queries/javascript.core.scm | 68 +++++++++---------- queries/javascript.jsx.scm | 4 +- queries/json.scm | 4 +- queries/markdown.scm | 8 +-- queries/python.scm | 28 ++++---- queries/scm.scm | 4 +- queries/talon.scm | 6 +- queries/typescript.core.scm | 20 +++--- queries/xml.scm | 4 +- queries/yaml.scm | 30 ++++---- 13 files changed, 122 insertions(+), 118 deletions(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts index 3aa95dac22..1de39b1534 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts @@ -1,4 +1,9 @@ -import { Range, SimpleScopeType, TextEditor } from "@cursorless/common"; +import { + Position, + Range, + SimpleScopeType, + TextEditor, +} from "@cursorless/common"; import { TreeSitterQuery } from "../../../../languages/TreeSitterQuery"; import { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture"; import { ScopeTypeTarget } from "../../../targets/ScopeTypeTarget"; @@ -55,14 +60,6 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { const removalRange = getRelatedRange(match, scopeTypeType, "removal", true); - const leadingDelimiterRange = dropEmptyRange( - getRelatedRange(match, scopeTypeType, "leading", true), - ); - - const trailingDelimiterRange = dropEmptyRange( - getRelatedRange(match, scopeTypeType, "trailing", true), - ); - const interiorRange = getRelatedRange( match, scopeTypeType, @@ -70,16 +67,20 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { true, ); - const rawPrefixRange = getRelatedRange( - match, - scopeTypeType, - "prefix", - true, + const prefixRange = createRangeUntilPosition( + getRelatedRange(match, scopeTypeType, "prefix", true), + contentRange.start, + ); + + const leadingDelimiterRange = createRangeUntilPosition( + getRelatedRange(match, scopeTypeType, "leading", true), + prefixRange?.start ?? contentRange.start, + ); + + const trailingDelimiterRange = createRangeUntilPosition( + getRelatedRange(match, scopeTypeType, "trailing", true), + contentRange.end, ); - const prefixRange = - rawPrefixRange != null - ? new Range(rawPrefixRange.start, contentRange.start) - : undefined; return { editor, @@ -103,6 +104,9 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { } } -function dropEmptyRange(range?: Range) { - return range != null && !range.isEmpty ? range : undefined; +function createRangeUntilPosition( + range: Range | undefined, + position: Position, +) { + return range != null ? range.union(position.toEmptyRange()) : undefined; } diff --git a/queries/html.scm b/queries/html.scm index 2aa80639c8..2862d82fc7 100644 --- a/queries/html.scm +++ b/queries/html.scm @@ -19,11 +19,11 @@ ;;!! ;;! ^^ (attribute - (attribute_name) @collectionKey @collectionKey.trailing.start.endOf + (attribute_name) @collectionKey [ (quoted_attribute_value) (attribute_value) - ] ? @collectionKey.trailing.end.startOf + ] ? @collectionKey.trailing.startOf ) @_.domain ;;!! @@ -31,11 +31,11 @@ ;;!! ;;! ^^^^ (attribute - (attribute_name) @value.leading.start.endOf + (attribute_name) @value.leading.endOf [ (quoted_attribute_value) (attribute_value) - ] @value @value.leading.end.startOf + ] @value ) @value.domain ;;!! diff --git a/queries/java.scm b/queries/java.scm index aabd58cd2f..3058270539 100644 --- a/queries/java.scm +++ b/queries/java.scm @@ -288,14 +288,14 @@ ;;! -------------- (local_variable_declaration (variable_declarator - name: (_) @name @name.trailing.start.endOf @value.leading.start.endOf - value: (_)? @value @name.trailing.end.startOf @value.leading.end.startOf + name: (_) @name @value.leading.endOf + value: (_)? @value @name.trailing.startOf ) ) @_.domain (field_declaration (variable_declarator - name: (_) @name @name.trailing.start.endOf @value.leading.start.endOf - value: (_)? @value @name.trailing.end.startOf @value.leading.end.startOf + name: (_) @name @value.leading.endOf + value: (_)? @value @name.trailing.startOf ) ) @_.domain @@ -305,8 +305,8 @@ ;;! ---------- (_ (assignment_expression - left: (_) @name @name.trailing.start.endOf @value.leading.start.endOf - right: (_) @value @name.trailing.end.startOf @value.leading.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) @_.domain.start ";"? @_.domain.end ) diff --git a/queries/javascript.core.scm b/queries/javascript.core.scm index 1e81e248ad..d69ee12fca 100644 --- a/queries/javascript.core.scm +++ b/queries/javascript.core.scm @@ -99,8 +99,8 @@ (variable_declarator) . (variable_declarator - name: (_) @name @name.trailing.start.endOf - value: (_)? @name.trailing.end.startOf + name: (_) @name + value: (_)? @name.trailing.startOf ) ) @@ -120,8 +120,8 @@ (variable_declarator) . (variable_declarator - name: (_) @name @name.trailing.start.endOf - value: (_)? @name.trailing.end.startOf + name: (_) @name + value: (_)? @name.trailing.startOf ) ) ] @_.domain @@ -147,8 +147,8 @@ ;;! xxxx ;;! ----------------------------------- (variable_declarator - name: (_) @name @name.trailing.start.endOf - value: (_)? @name.trailing.end.startOf + name: (_) @name + value: (_)? @name.trailing.startOf ) ) ) @_.domain @@ -187,8 +187,8 @@ (variable_declarator) . (variable_declarator - name: (_) @name @name.trailing.start.endOf - value: (_)? @name.trailing.end.startOf + name: (_) @name + value: (_)? @name.trailing.startOf ) @_.domain ) @@ -203,9 +203,9 @@ ;;! --------------------------- (lexical_declaration (variable_declarator - (_) @value.leading.start.endOf + (_) @value.leading.endOf . - value: (_)? @value @value.leading.end.startOf + value: (_)? @value ) ) @@ -217,9 +217,9 @@ ;; of https://github.com/tree-sitter/tree-sitter/issues/1442#issuecomment-1584628651 (variable_declaration (variable_declarator - (_) @value.leading.start.endOf + (_) @value.leading.endOf . - value: (_)? @value @value.leading.end.startOf + value: (_)? @value ) ) ] @_.domain @@ -239,9 +239,9 @@ ;;! xxxx ;;! ---------------------------------------- (variable_declarator - (_) @value.leading.start.endOf + (_) @value.leading.endOf . - value: (_)? @value @value.leading.end.startOf + value: (_)? @value ) ) ) @_.domain @@ -262,9 +262,9 @@ ( (_ (variable_declarator - (_) @value.leading.start.endOf + (_) @value.leading.endOf . - value: (_)? @value @value.leading.end.startOf + value: (_)? @value ) @_.domain ) @dummy (#has-multiple-children-of-type? @dummy variable_declarator) @@ -283,8 +283,8 @@ ;;! xxxx ;;! -------- (assignment_expression - left: (_) @name @value.leading.start.endOf @name.trailing.start.endOf - right: (_) @value @name.trailing.end.startOf @value.leading.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) ;; name: @@ -298,8 +298,8 @@ ;;! xxxxx ;;! --------- (augmented_assignment_expression - left: (_) @name @value.leading.start.endOf @name.trailing.start.endOf - right: (_) @value @name.trailing.end.startOf @value.leading.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) ] ) @_.domain @@ -323,8 +323,8 @@ ;;!2 xxxx ;;!2 ------- (assignment_expression - left: (_) @name @value.leading.start.endOf @name.trailing.start.endOf - right: (_) @value @name.trailing.end.startOf @value.leading.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) ;; name: @@ -344,8 +344,8 @@ ;;!2 xxxxx ;;!2 -------- (augmented_assignment_expression - left: (_) @name @value.leading.start.endOf @name.trailing.start.endOf - right: (_) @value @name.trailing.end.startOf @value.leading.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) ] @_.domain @@ -420,8 +420,8 @@ ;;! ^^^ ;;! -------- (pair_pattern - key: (_) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf - value: (_) @value @collectionKey.trailing.end.startOf @value.leading.end.startOf + key: (_) @collectionKey @value.leading.endOf + value: (_) @value @collectionKey.trailing.startOf ) @_.domain ;;!! "string" @@ -640,8 +640,8 @@ ;;! xxx ;;! -------- (pair - key: (_) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf - value: (_) @value @collectionKey.trailing.end.startOf @value.leading.end.startOf + key: (_) @collectionKey @value.leading.endOf + value: (_) @value @collectionKey.trailing.startOf ) @_.domain ;; Statements that are not a child of an export statement @@ -685,11 +685,11 @@ ;;! ^^^^^^^^^^^^ ( (formal_parameters - (_)? @_.leading.start.endOf + (_)? @_.leading.endOf . - (_) @argumentOrParameter @_.leading.end.startOf @_.trailing.start.endOf + (_) @argumentOrParameter . - (_)? @_.trailing.end.startOf + (_)? @_.trailing.startOf ) @dummy (#not-type? @argumentOrParameter "comment") (#single-or-multi-line-delimiter! @argumentOrParameter @dummy ", " ",\n") @@ -699,11 +699,11 @@ ;;! ^^^^^ ( (arguments - (_)? @_.leading.start.endOf + (_)? @_.leading.endOf . - (_) @argumentOrParameter @_.leading.end.startOf @_.trailing.start.endOf + (_) @argumentOrParameter . - (_)? @_.trailing.end.startOf + (_)? @_.trailing.startOf ) @dummy (#not-type? @argumentOrParameter "comment") (#single-or-multi-line-delimiter! @argumentOrParameter @dummy ", " ",\n") diff --git a/queries/javascript.jsx.scm b/queries/javascript.jsx.scm index 2753e13d47..bc9e1c60a1 100644 --- a/queries/javascript.jsx.scm +++ b/queries/javascript.jsx.scm @@ -97,8 +97,8 @@ ;;! xxxxxx ;;! --------- (jsx_attribute - (_) @value.leading.start.endOf - (_) @value @value.leading.end.startOf + (_) @_.leading.endOf + (_) @value ) @_.domain ;;!! diff --git a/queries/json.scm b/queries/json.scm index 907c9dc750..be24421a7c 100644 --- a/queries/json.scm +++ b/queries/json.scm @@ -18,8 +18,8 @@ ;;! ^^^^^^^ ^ ;;! ---------- (pair - key: (_) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf - value: (_) @value @collectionKey.trailing.end.startOf @value.leading.end.startOf + key: (_) @collectionKey @value.leading.endOf + value: (_) @value @collectionKey.trailing.startOf ) @_.domain ;;!! {"bbb": 0, "ccc": 0} diff --git a/queries/markdown.scm b/queries/markdown.scm index a1974f11f6..3c5726d7f1 100644 --- a/queries/markdown.scm +++ b/queries/markdown.scm @@ -24,18 +24,18 @@ (list (list_item (paragraph - (inline) @_.leading.start.endOf + (inline) @_.leading.endOf ) )? . (list_item (_) @_.prefix (paragraph - (inline) @collectionItem @_.trailing.start.endOf + (inline) @collectionItem ) - ) @_.domain @_.leading.end.startOf + ) @_.domain . - (list_item)? @_.trailing.end.startOf + (list_item)? @_.trailing.startOf (#trim-end! @_.domain) (#insertion-delimiter! @collectionItem "\n") ) diff --git a/queries/python.scm b/queries/python.scm index fd0287bf26..8095d88f18 100644 --- a/queries/python.scm +++ b/queries/python.scm @@ -35,9 +35,9 @@ ;;! xxxxx ;;! ------ (assignment - (_) @_.leading.start.endOf + (_) @_.leading.endOf . - right: (_) @value @_.leading.end.startOf + right: (_) @value ) @_.domain ;; value: @@ -51,8 +51,8 @@ ;;! xxxxx ;;! ------- (augmented_assignment - left: (_) @name @name.trailing.start.endOf @value.leading.start.endOf - right: (_) @value @value.leading.end.startOf @name.trailing.end.startOf + left: (_) @name @value.leading.endOf + right: (_) @value @name.trailing.startOf ) @_.domain ;;!! a = 25 @@ -64,8 +64,8 @@ ;;! xxxxxxxxx ;;! ----------- (assignment - left: (_) @name @name.trailing.start.endOf - right: (_)? @name.trailing.end.startOf + left: (_) @name + right: (_)? @_.trailing.startOf ) @_.domain (_ @@ -93,9 +93,9 @@ ;;! ----------------- ;;! xxxxx (_ - (_) @_.leading.start.endOf + (_) @_.leading.endOf . - type: (_) @type @_.leading.end.startOf + type: (_) @type ) @_.domain ;;!! def aaa() -> str: @@ -105,9 +105,9 @@ ;;!! pass ;;! --------] (function_definition - (_) @_.leading.start.endOf + (_) @_.leading.endOf . - return_type: (_) @type @_.leading.end.startOf + return_type: (_) @type ) @_.domain ;;!! d = {"a": 1234} @@ -124,9 +124,9 @@ ;;! --------------- ( (_ - (_) @_.leading.start.endOf + (_) @_.leading.endOf . - value: (_) @value @_.leading.end.startOf + value: (_) @value ) @_.domain (#not-type? @_.domain subscript) ) @@ -266,8 +266,8 @@ ;;! ^^^^^^^ ;;! xxxxxxxxx (pair - key: (_) @collectionKey @collectionKey.trailing.start.endOf - value: (_) @collectionKey.trailing.end.startOf + key: (_) @collectionKey + value: (_) @_.trailing.startOf ) @_.domain ;;!! if True: diff --git a/queries/scm.scm b/queries/scm.scm index 2e981f1e1a..66ebad40e6 100644 --- a/queries/scm.scm +++ b/queries/scm.scm @@ -65,9 +65,9 @@ ;;! xxxxx ;;! --------------- (field_definition - name: (identifier) @collectionKey @collectionKey.trailing.start.endOf + name: (identifier) @collectionKey . - (_) @collectionKey.trailing.end.startOf + (_) @_.trailing.startOf ) @_.domain ;;!! aaa: (bbb) @ccc diff --git a/queries/talon.scm b/queries/talon.scm index 1ead91e74f..884e7b94ff 100644 --- a/queries/talon.scm +++ b/queries/talon.scm @@ -159,11 +159,11 @@ ;;! ^^^^^^^ ^^^^^^^ (action arguments: (_ - (_)? @_.leading.start.endOf + (_)? @_.leading.endOf . - (_) @argumentOrParameter @_.leading.end.startOf @_.trailing.start.endOf + (_) @argumentOrParameter . - (_)? @_.trailing.end.startOf + (_)? @_.trailing.startOf ) (#insertion-delimiter! @argumentOrParameter ", ") ) diff --git a/queries/typescript.core.scm b/queries/typescript.core.scm index 6ae7c6158e..e99f91f4cc 100644 --- a/queries/typescript.core.scm +++ b/queries/typescript.core.scm @@ -160,10 +160,10 @@ ;;! ^^^^^^ ^^^^^^ (formal_parameters (_ - pattern: (_) @type.leading.start.endOf + pattern: (_) @_.leading.endOf type: (_ ":" - (_) @type @type.leading.end.startOf + (_) @type ) ) @_.domain ) @@ -173,10 +173,10 @@ ;;!! ccc(): string {} ;;! ^^^^^^ (_ - parameters: (_) @type.leading.end.endOf + parameters: (_) @_.leading.endOf return_type: (_ ":" - (_) @type @type.leading.end.startOf + (_) @type ) ) @_.domain @@ -229,8 +229,8 @@ ;;! xxxxxxx ;;! ---------- (as_expression - (_) @_.leading.start.endOf - (_) @type @_.leading.end.startOf + (_) @_.leading.endOf + (_) @type ) @_.domain ;;!! aaa satisfies Bbb @@ -238,11 +238,11 @@ ;;! xxxxxxxxxxxxxx ;;! ----------------- (satisfies_expression - (_) @_.leading.start.endOf + (_) @_.leading.endOf [ (generic_type) (predefined_type) - ] @type @_.leading.end.startOf + ] @type ) @_.domain ;;!! abstract class MyClass {} @@ -275,10 +275,10 @@ ;;! ------------ ( (property_signature - name: (_) @collectionKey @collectionKey.trailing.start.endOf @type.leading.start.endOf + name: (_) @collectionKey @type.leading.endOf type: (_ ":" - (_) @type @collectionKey.trailing.end.startOf @type.leading.end.startOf + (_) @type @collectionKey.trailing.startOf ) ) @_.domain.start ";"? @_.domain.end diff --git a/queries/xml.scm b/queries/xml.scm index 0509e5d5eb..066879cc15 100644 --- a/queries/xml.scm +++ b/queries/xml.scm @@ -19,8 +19,8 @@ ;;!! ;;! ^^ ^^^^ (Attribute - (Name) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf - (AttValue) @value @collectionKey.trailing.end.startOf @value.leading.end.startOf + (Name) @collectionKey @value.leading.endOf + (AttValue) @value @collectionKey.trailing.startOf ) @_.domain ;;!! diff --git a/queries/yaml.scm b/queries/yaml.scm index 899f208507..d7f12db3cc 100644 --- a/queries/yaml.scm +++ b/queries/yaml.scm @@ -1,18 +1,18 @@ ;; ;;!! foo: bar ;; ;;! ^^^ ^^^ (_ - key: (_) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf - value: (_) @value @collectionKey.trailing.start.startOf @value.leading.start.startOf + key: (_) @collectionKey @value.leading.endOf + value: (_) @value @collectionKey.trailing.startOf ) @_.domain ;;!! foo: bar ;;! ^^^^^^^^ (block_mapping - (block_mapping_pair)? @collectionItem.leading.start.endOf + (block_mapping_pair)? @collectionItem.leading.endOf . - (block_mapping_pair) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + (block_mapping_pair) @collectionItem . - (block_mapping_pair)? @collectionItem.trailing.end.startOf + (block_mapping_pair)? @collectionItem.trailing.startOf ) @map ;;!! - 0 @@ -20,14 +20,14 @@ ;;! --- ( (block_sequence - (block_sequence_item)? @collectionItem.leading.start.endOf + (block_sequence_item)? @collectionItem.leading.endOf . (block_sequence_item - "-" @collectionItem.leading.end.startOf @collectionItem.prefix - (_) @collectionItem @collectionItem.trailing.end.endOf + "-" @collectionItem.prefix + (_) @collectionItem ) @collectionItem.domain . - (block_sequence_item)? @collectionItem.trailing.end.startOf + (block_sequence_item)? @collectionItem.trailing.startOf (#trim-end! @collectionItem) (#insertion-delimiter! @collectionItem "\n") ) @list @@ -37,22 +37,22 @@ ;;!! [0] ;;! ^ (flow_sequence - (flow_node)? @collectionItem.leading.start.endOf + (flow_node)? @collectionItem.leading.endOf . - (flow_node) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + (flow_node) @collectionItem . - (flow_node)? @collectionItem.trailing.end.startOf + (flow_node)? @collectionItem.trailing.startOf (#insertion-delimiter! @collectionItem ", ") ) @list ;;!! { foo: bar } ;;! ^^^^^^^^ (flow_mapping - (flow_pair)? @collectionItem.leading.start.endOf + (flow_pair)? @collectionItem.leading.endOf . - (flow_pair) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + (flow_pair) @collectionItem . - (flow_pair)? @collectionItem.trailing.end.startOf + (flow_pair)? @collectionItem.trailing.startOf (#insertion-delimiter! @collectionItem ", ") ) @map From 4affe6ffe3216c25db8173e8e114399979ba9369 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Sat, 9 Dec 2023 09:47:31 +0100 Subject: [PATCH 2/5] rename --- .../TreeSitterScopeHandler/TreeSitterScopeHandler.ts | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts index 1de39b1534..21b5537ad1 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts @@ -67,17 +67,17 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { true, ); - const prefixRange = createRangeUntilPosition( + const prefixRange = createRangeWithPosition( getRelatedRange(match, scopeTypeType, "prefix", true), contentRange.start, ); - const leadingDelimiterRange = createRangeUntilPosition( + const leadingDelimiterRange = createRangeWithPosition( getRelatedRange(match, scopeTypeType, "leading", true), prefixRange?.start ?? contentRange.start, ); - const trailingDelimiterRange = createRangeUntilPosition( + const trailingDelimiterRange = createRangeWithPosition( getRelatedRange(match, scopeTypeType, "trailing", true), contentRange.end, ); @@ -104,9 +104,6 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { } } -function createRangeUntilPosition( - range: Range | undefined, - position: Position, -) { +function createRangeWithPosition(range: Range | undefined, position: Position) { return range != null ? range.union(position.toEmptyRange()) : undefined; } From f5dc4281f295a47961db47e6f867723ee939d6e7 Mon Sep 17 00:00:00 2001 From: Pokey Rule <755842+pokey@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:00:59 +0000 Subject: [PATCH 3/5] Attempt at tweaking related range code --- .../TreeSitterScopeHandler.ts | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts index 21b5537ad1..c54c78d3c1 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts @@ -1,6 +1,4 @@ import { - Position, - Range, SimpleScopeType, TextEditor, } from "@cursorless/common"; @@ -67,20 +65,26 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { true, ); - const prefixRange = createRangeWithPosition( - getRelatedRange(match, scopeTypeType, "prefix", true), - contentRange.start, - ); + const prefixRange = getRelatedRange( + match, + scopeTypeType, + "prefix", + true, + )?.with(undefined, contentRange.start); - const leadingDelimiterRange = createRangeWithPosition( - getRelatedRange(match, scopeTypeType, "leading", true), - prefixRange?.start ?? contentRange.start, - ); + const leadingDelimiterRange = getRelatedRange( + match, + scopeTypeType, + "leading", + true, + )?.with(undefined, prefixRange?.start ?? contentRange.start); - const trailingDelimiterRange = createRangeWithPosition( - getRelatedRange(match, scopeTypeType, "trailing", true), - contentRange.end, - ); + const trailingDelimiterRange = getRelatedRange( + match, + scopeTypeType, + "trailing", + true, + )?.with(contentRange.start); return { editor, @@ -103,7 +107,3 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { }; } } - -function createRangeWithPosition(range: Range | undefined, position: Position) { - return range != null ? range.union(position.toEmptyRange()) : undefined; -} From aad917c08b5bb12726441902090ae53795d63513 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 16:02:40 +0000 Subject: [PATCH 4/5] [pre-commit.ci lite] apply automatic fixes --- .../TreeSitterScopeHandler/TreeSitterScopeHandler.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts index c54c78d3c1..47a2229716 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts @@ -1,7 +1,4 @@ -import { - SimpleScopeType, - TextEditor, -} from "@cursorless/common"; +import { SimpleScopeType, TextEditor } from "@cursorless/common"; import { TreeSitterQuery } from "../../../../languages/TreeSitterQuery"; import { QueryMatch } from "../../../../languages/TreeSitterQuery/QueryCapture"; import { ScopeTypeTarget } from "../../../targets/ScopeTypeTarget"; From 684c09425dba47f42fc2b8b297058484ed12bb02 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Mon, 11 Dec 2023 18:41:40 +0100 Subject: [PATCH 5/5] Use correct position --- .../TreeSitterScopeHandler/TreeSitterScopeHandler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts index 47a2229716..e5d054ee63 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/scopeHandlers/TreeSitterScopeHandler/TreeSitterScopeHandler.ts @@ -81,7 +81,7 @@ export class TreeSitterScopeHandler extends BaseTreeSitterScopeHandler { scopeTypeType, "trailing", true, - )?.with(contentRange.start); + )?.with(contentRange.end); return { editor,