@vuedx/typescript-plugin-vue
Version:
TypeScript plugin for Vue
83 lines • 2.9 kB
TypeScript
import { AttributeNode, CommentNode, DirectiveNode, ElementNode, InterpolationNode, Node, RootNode, SimpleExpressionNode, TextNode, TraversalAncestors } from '@vuedx/template-ast-types';
export declare const enum TemplateContextType {
OpenTag = "open-tag",
CloseTag = "close-tag",
Attribute = "attribute",
AttributeValue = "attribute-value",
DirectiveArgument = "directive-argument",
DirectiveModifier = "directive-modifier",
DirectiveValue = "directive-value",
Interpolation = "interpolation",
None = "none",
Comment = "comment",
Unknown = "unknown"
}
export interface OpenTagContext {
type: TemplateContextType.OpenTag;
node: ElementNode;
context: ElementNode;
ancestors: TraversalAncestors;
}
export interface CloseTagContext {
type: TemplateContextType.CloseTag;
node: ElementNode;
context: ElementNode;
ancestors: TraversalAncestors;
}
export interface AttributeContext {
type: TemplateContextType.Attribute;
node: AttributeNode | null;
context: ElementNode;
ancestors: TraversalAncestors;
}
export interface AttributeValueContext {
type: TemplateContextType.AttributeValue;
node: TextNode;
context: AttributeNode;
ancestors: TraversalAncestors;
}
export interface DirectiveArgumentContext {
type: TemplateContextType.DirectiveArgument;
node: SimpleExpressionNode | null;
context: DirectiveNode;
element: ElementNode;
ancestors: TraversalAncestors;
}
export interface DirectiveModifierContext {
type: TemplateContextType.DirectiveModifier;
node: DirectiveNode;
context: ElementNode;
ancestors: TraversalAncestors;
}
export interface DirectiveValueContext {
type: TemplateContextType.DirectiveValue;
node: SimpleExpressionNode;
context: DirectiveNode;
element: ElementNode;
ancestors: TraversalAncestors;
}
export interface InterpolationContext {
type: TemplateContextType.Interpolation;
node: SimpleExpressionNode | null;
context: InterpolationNode;
ancestors: TraversalAncestors;
}
export interface CommentContext {
type: TemplateContextType.Comment;
node: CommentNode;
context: ElementNode | RootNode;
before: ElementNode | null;
after: ElementNode | null;
ancestors: TraversalAncestors;
}
export interface NoneContext {
type: TemplateContextType.None;
}
export interface UnknownContext {
type: TemplateContextType.Unknown;
node: Node;
ancestors: TraversalAncestors;
}
export declare type Context = AttributeContext | AttributeValueContext | CloseTagContext | CommentContext | DirectiveArgumentContext | DirectiveModifierContext | DirectiveValueContext | InterpolationContext | NoneContext | OpenTagContext | UnknownContext;
export declare function getTemplateContextAt(ast: RootNode | null, offset: number): Context;
//# sourceMappingURL=templateContextAtPosition.d.ts.map