@arcgis/coding-components
Version:
Contains components for editing code in different languages. The currently supported languages are html, css, json, TypeScript, JavaScript, and Arcade.
37 lines (36 loc) • 2.07 kB
TypeScript
/// <reference types="@arcgis/core/interfaces.d.ts" />
import { ChildBearingProperties } from './sql-expr-constants';
export declare function isSqlSyntaxError(err: unknown): err is __esri.SQLSyntaxError;
export declare function isUnexpectedTokenError(error: __esri.SQLSyntaxError): boolean;
export declare function getExpectedTokens(error: __esri.SQLSyntaxError): string[] | undefined;
export declare function formatSyntaxError(error: __esri.SQLSyntaxError): string;
type ExpectedLiteral = {
category: "functions" | "keywords" | "operators";
text: string;
};
/**
* parses the error from the parser and returns the expected literals, used to provide suggestions.
* it will only return literals that do not contain special characters or numbers.
*/
export declare function getExpectedLiterals(error: __esri.SQLSyntaxError): ExpectedLiteral[];
export declare const callerIndexAt = -2;
/**
* returns the slot position of the node in the context root
* @param node the node we want to find the slot position for
* @param contextRoot the context root of the node, see {@link identifyContextRoot}
*/
export declare function getSlotPosition(node: __esri.SQLNode, contextRoot: __esri.SQLNode): ChildBearingProperties | number;
/**
* Identifies the context root of the searchNode in the searchTree. The context root is the first "non-terminal" node within the node's parent context (searchTree).
* see {@link terminalTypes} for the list of terminal types.
* @param searchNode the node we want to find the context root for
* @param searchTree all the nodes contained in the searchNode's parent context
* @returns The context root of the searchNode
*/
export declare function identifyContextRoot(searchNode: __esri.SQLNode, searchTree: __esri.SQLNode[]): __esri.SQLNode;
/**
* Appends the required number of closing parentheses to the model content.
* This helps when the parsing fails. We try closing the unclosed parentheses, and resubmit the content for parsing.
*/
export declare function closeUnclosedDelimiters(modelContent: string): string;
export {};