MCPcopy Index your code
hub / github.com/cursorless-dev/cursorless / selectWithTrailingDelimiter

Function selectWithTrailingDelimiter

src/util/nodeSelectors.ts:153–185  ·  view source on GitHub ↗
(...delimiters: string[])

Source from the content-addressed store, hash-verified

151}
152
153export function selectWithTrailingDelimiter(...delimiters: string[]) {
154 return function (editor: TextEditor, node: SyntaxNode): SelectionWithContext {
155 const firstSibling = node.nextSibling;
156 const secondSibling = firstSibling?.nextSibling;
157 let trailingDelimiterRange;
158 if (firstSibling) {
159 if (delimiters.includes(firstSibling.type)) {
160 if (secondSibling) {
161 trailingDelimiterRange = makeRangeFromPositions(
162 node.endPosition,
163 secondSibling.startPosition
164 );
165 } else {
166 trailingDelimiterRange = makeRangeFromPositions(
167 node.endPosition,
168 firstSibling.endPosition
169 );
170 }
171 } else {
172 trailingDelimiterRange = makeRangeFromPositions(
173 node.endPosition,
174 firstSibling.startPosition
175 );
176 }
177 }
178 return {
179 ...simpleSelectionExtractor(editor, node),
180 context: {
181 trailingDelimiterRange,
182 },
183 };
184 };
185}
186
187function getNextNonDelimiterNode(
188 startNode: SyntaxNode,

Callers 1

trailingMatcherFunction · 0.90

Calls 2

makeRangeFromPositionsFunction · 0.85
simpleSelectionExtractorFunction · 0.85

Tested by

no test coverage detected