MCPcopy Create free account
hub / github.com/cursorless-dev/cursorless / chainedNodeFinder

Function chainedNodeFinder

src/util/nodeFinders.ts:20–32  ·  view source on GitHub ↗
(...nodeFinders: NodeFinder[])

Source from the content-addressed store, hash-verified

18 * @returns A node finder which is a chain of the input node finders
19 */
20export function chainedNodeFinder(...nodeFinders: NodeFinder[]) {
21 return (node: SyntaxNode) => {
22 let currentNode: SyntaxNode | null = node;
23 for (const nodeFinder of nodeFinders) {
24 currentNode = nodeFinder(currentNode);
25 if (currentNode == null) {
26 return null;
27 }
28 }
29
30 return currentNode;
31 };
32}
33
34export const typedNodeFinder = (...typeNames: string[]): NodeFinder => {
35 return nodeFinder((node) => typeNames.includes(node.type));

Callers 1

chainedMatcherFunction · 0.90

Calls 1

nodeFinderFunction · 0.85

Tested by

no test coverage detected