prettier-plugin-embed
Version:
A configurable Prettier plugin to format embedded languages in JS/TS files.
141 lines (140 loc) • 14.4 kB
TypeScript
import type { Expression, Node, TemplateLiteral } from "estree";
import { type AstPath, type Options, type Printer } from "prettier";
import { type EmbeddedComment, type EmbeddedLanguage, type EmbeddedTag } from "./embedded/index.js";
export declare function resolveEmbeddedOverrideOptions(embeddedOverridesString: string | undefined, { commentOrTag, kind, filepath, }: {
commentOrTag: EmbeddedComment | EmbeddedTag;
kind: "comment" | "tag";
filepath?: string;
}): Promise<{
embeddedCssParser?: ("css" | "less" | "scss") | undefined;
embeddedEsParser?: import("./embedded/es/options.js").EsParser | undefined;
embeddedHtmlParser?: ("html" | "vue" | "angular" | "lwc") | undefined;
embeddedJsonParser?: ("json" | "json5" | "jsonc" | "json-stringify") | undefined;
embeddedMarkdownParser?: ("markdown" | "mdx" | "remark") | undefined;
embeddedTsParser?: import("./embedded/ts/options.js").TsParser | undefined;
embeddedRubyParser?: import("./embedded/ruby/options.js").RubyParser | undefined;
embeddedSqlPlugin?: ("prettier-plugin-sql" | "prettier-plugin-sql-cst") | undefined;
embeddedSqlParser?: ("bigquery" | "mariadb" | "mysql" | "postgresql" | "sqlite") | undefined;
semi?: boolean | undefined;
singleQuote?: boolean | undefined;
jsxSingleQuote?: boolean | undefined;
trailingComma?: "none" | "es5" | "all" | undefined;
bracketSpacing?: boolean | undefined;
objectWrap?: "preserve" | "collapse" | undefined;
bracketSameLine?: boolean | undefined;
rangeStart?: number | undefined;
rangeEnd?: number | undefined;
requirePragma?: boolean | undefined;
insertPragma?: boolean | undefined;
proseWrap?: "preserve" | "always" | "never" | undefined;
arrowParens?: "always" | "avoid" | undefined;
plugins?: (string | import("prettier").Plugin<any>)[] | undefined;
htmlWhitespaceSensitivity?: "css" | "strict" | "ignore" | undefined;
quoteProps?: "preserve" | "as-needed" | "consistent" | undefined;
vueIndentScriptAndStyle?: boolean | undefined;
singleAttributePerLine?: boolean | undefined;
experimentalOperatorPosition?: "start" | "end" | undefined;
experimentalTernaries?: boolean | undefined;
jsxBracketSameLine?: boolean | undefined;
alignDirectives?: boolean | undefined;
alignUniversally?: boolean | undefined;
wrapParameters?: boolean | undefined;
continuationIndent?: number | undefined;
locStart?: ((node: any) => number) | undefined;
locEnd?: ((node: any) => number) | undefined;
originalText?: string | undefined;
keepComments?: boolean | undefined;
stopAt?: string | undefined;
variant?: import("sh-syntax").LangVariant | undefined;
indent?: number | undefined;
binaryNextLine?: boolean | undefined;
switchCaseIndent?: boolean | undefined;
spaceRedirects?: boolean | undefined;
keepPadding?: boolean | undefined;
minify?: boolean | undefined;
functionNextLine?: boolean | undefined;
experimentalWasm?: boolean | undefined;
sqlKeywordCase?: "preserve" | "upper" | "lower" | undefined;
sqlParamTypes?: import("sql-parser-cst/lib/ParserOptions.js").ParamType[] | undefined;
sqlCanonicalSyntax?: boolean | undefined;
sqlAcceptUnsupportedGrammar?: boolean | undefined;
keywordCase?: import("sql-formatter").KeywordCase | undefined;
identifierCase?: import("sql-formatter").KeywordCase | undefined;
dataTypeCase?: import("sql-formatter").KeywordCase | undefined;
functionCase?: import("sql-formatter").KeywordCase | undefined;
indentStyle?: import("sql-formatter").IndentStyle | undefined;
logicalOperatorNewline?: import("sql-formatter").LogicalOperatorNewline | undefined;
expressionWidth?: number | undefined;
linesBetweenQueries?: number | undefined;
denseOperators?: boolean | undefined;
newlineBeforeSemicolon?: boolean | undefined;
params?: ((import("sql-formatter").ParamItems | string[]) & string) | undefined;
paramTypes?: (import("sql-formatter").ParamTypes & string) | undefined;
dialect?: string | undefined;
language?: import("sql-formatter").SqlLanguage | undefined;
database?: string | undefined;
type?: string | undefined;
formatter?: ("node-sql-parser" | "sql-cst" | "sql-formatter") | undefined;
alignEntries?: boolean | undefined;
alignComments?: boolean | undefined;
arrayAutoExpand?: boolean | undefined;
arrayAutoCollapse?: boolean | undefined;
compactArrays?: boolean | undefined;
compactInlineTables?: boolean | undefined;
compactEntries?: boolean | undefined;
indentTables?: boolean | undefined;
indentEntries?: boolean | undefined;
reorderKeys?: boolean | undefined;
allowedBlankLines?: number | undefined;
iniSpaceAroundEquals?: boolean | undefined;
entrypoint?: "arrayInitializer" | "variableInitializerList" | "block" | "blockStatements" | "blockStatement" | "localVariableDeclarationStatement" | "localVariableDeclaration" | "localVariableType" | "statement" | "statementWithoutTrailingSubstatement" | "emptyStatement" | "labeledStatement" | "expressionStatement" | "statementExpression" | "ifStatement" | "assertStatement" | "switchStatement" | "switchBlock" | "switchBlockStatementGroup" | "switchLabel" | "switchRule" | "caseConstant" | "whileStatement" | "doStatement" | "forStatement" | "basicForStatement" | "forInit" | "forUpdate" | "statementExpressionList" | "enhancedForStatement" | "breakStatement" | "continueStatement" | "returnStatement" | "throwStatement" | "synchronizedStatement" | "tryStatement" | "catches" | "catchClause" | "catchFormalParameter" | "catchType" | "finally" | "tryWithResourcesStatement" | "resourceSpecification" | "resourceList" | "resource" | "yieldStatement" | "variableAccess" | "classDeclaration" | "normalClassDeclaration" | "classModifier" | "typeParameters" | "typeParameterList" | "superclass" | "superinterfaces" | "interfaceTypeList" | "classPermits" | "classBody" | "classBodyDeclaration" | "classMemberDeclaration" | "fieldDeclaration" | "fieldModifier" | "variableDeclaratorList" | "variableDeclarator" | "variableDeclaratorId" | "variableInitializer" | "unannType" | "unannPrimitiveTypeWithOptionalDimsSuffix" | "unannPrimitiveType" | "unannReferenceType" | "unannClassOrInterfaceType" | "unannClassType" | "unannInterfaceType" | "unannTypeVariable" | "methodDeclaration" | "methodModifier" | "methodHeader" | "result" | "methodDeclarator" | "receiverParameter" | "formalParameterList" | "formalParameter" | "variableParaRegularParameter" | "variableArityParameter" | "variableModifier" | "throws" | "exceptionTypeList" | "exceptionType" | "methodBody" | "instanceInitializer" | "staticInitializer" | "constructorDeclaration" | "constructorModifier" | "constructorDeclarator" | "simpleTypeName" | "constructorBody" | "explicitConstructorInvocation" | "unqualifiedExplicitConstructorInvocation" | "qualifiedExplicitConstructorInvocation" | "enumDeclaration" | "enumBody" | "enumConstantList" | "enumConstant" | "enumConstantModifier" | "enumBodyDeclarations" | "recordDeclaration" | "recordHeader" | "recordComponentList" | "recordComponent" | "variableArityRecordComponent" | "recordComponentModifier" | "recordBody" | "recordBodyDeclaration" | "compactConstructorDeclaration" | "isDims" | "expression" | "lambdaExpression" | "lambdaParameters" | "lambdaParametersWithBraces" | "lambdaParameterList" | "inferredLambdaParameterList" | "explicitLambdaParameterList" | "lambdaParameter" | "regularLambdaParameter" | "lambdaParameterType" | "lambdaBody" | "ternaryExpression" | "binaryExpression" | "unaryExpression" | "unaryExpressionNotPlusMinus" | "primary" | "primaryPrefix" | "primarySuffix" | "fqnOrRefType" | "fqnOrRefTypePartRest" | "fqnOrRefTypePartCommon" | "fqnOrRefTypePartFirst" | "parenthesisExpression" | "castExpression" | "primitiveCastExpression" | "referenceTypeCastExpression" | "newExpression" | "unqualifiedClassInstanceCreationExpression" | "classOrInterfaceTypeToInstantiate" | "typeArgumentsOrDiamond" | "diamond" | "methodInvocationSuffix" | "argumentList" | "arrayCreationExpression" | "arrayCreationDefaultInitSuffix" | "arrayCreationExplicitInitSuffix" | "dimExprs" | "dimExpr" | "classLiteralSuffix" | "arrayAccessSuffix" | "methodReferenceSuffix" | "pattern" | "typePattern" | "recordPattern" | "componentPatternList" | "componentPattern" | "unnamedPattern" | "guard" | "isRefTypeInMethodRef" | "interfaceDeclaration" | "normalInterfaceDeclaration" | "interfaceModifier" | "extendsInterfaces" | "interfacePermits" | "interfaceBody" | "interfaceMemberDeclaration" | "constantDeclaration" | "constantModifier" | "interfaceMethodDeclaration" | "interfaceMethodModifier" | "annotationTypeDeclaration" | "annotationTypeBody" | "annotationTypeMemberDeclaration" | "annotationTypeElementDeclaration" | "annotationTypeElementModifier" | "defaultValue" | "annotation" | "elementValuePairList" | "elementValuePair" | "elementValue" | "elementValueArrayInitializer" | "elementValueList" | "literal" | "integerLiteral" | "floatingPointLiteral" | "booleanLiteral" | "moduleName" | "packageName" | "typeName" | "expressionName" | "methodName" | "packageOrTypeName" | "ambiguousName" | "compilationUnit" | "ordinaryCompilationUnit" | "modularCompilationUnit" | "packageDeclaration" | "packageModifier" | "importDeclaration" | "typeDeclaration" | "moduleDeclaration" | "moduleDirective" | "requiresModuleDirective" | "exportsModuleDirective" | "opensModuleDirective" | "usesModuleDirective" | "providesModuleDirective" | "requiresModifier" | "primitiveType" | "numericType" | "integralType" | "floatingPointType" | "referenceType" | "classOrInterfaceType" | "classType" | "interfaceType" | "typeVariable" | "dims" | "typeParameter" | "typeParameterModifier" | "typeBound" | "additionalBound" | "typeArguments" | "typeArgumentList" | "typeArgument" | "wildcard" | "wildcardBounds" | undefined;
actionParser?: (import("./embedded/es/options.js").EsParser | import("./embedded/ts/options.js").TsParser) | undefined;
phpVersion?: "5.0" | "5.1" | "5.2" | "5.3" | "5.4" | "5.5" | "5.6" | "7.0" | "7.1" | "7.2" | "7.3" | "7.4" | "8.0" | "8.1" | "8.2" | undefined;
trailingCommaPHP?: boolean | undefined;
braceStyle?: "psr-2" | "per-cs" | "1tbs" | undefined;
escapeNonLatin1?: boolean | undefined;
keySeparator?: " " | ":" | "=" | ": " | "= " | " : " | " = " | undefined;
pugPrintWidth?: number | undefined;
pugSingleQuote?: boolean | undefined;
pugTabWidth?: number | undefined;
pugUseTabs?: boolean | undefined;
pugBracketSpacing?: boolean | undefined;
pugArrowParens?: "avoid" | "always" | undefined;
pugSemi?: boolean | undefined;
pugBracketSameLine?: boolean | undefined;
pugAttributeSeparator?: "always" | "as-needed" | "none" | undefined;
pugCommentPreserveSpaces?: "keep-all" | "keep-leading" | "trim-all" | undefined;
pugSortAttributes?: "asc" | "desc" | "as-is" | undefined;
pugSortAttributesBeginning?: string[] | undefined;
pugSortAttributesEnd?: string[] | undefined;
pugWrapAttributesThreshold?: number | undefined;
pugWrapAttributesPattern?: string | undefined;
pugClassLocation?: "before-attributes" | "after-attributes" | undefined;
pugClassNotation?: "literal" | "attribute" | "as-is" | undefined;
pugIdNotation?: "literal" | "as-is" | undefined;
pugEmptyAttributes?: "as-is" | "none" | "all" | undefined;
pugEmptyAttributesForceQuotes?: "as-is" | "none" | "all" | undefined;
pugSingleFileComponentIndentation?: boolean | undefined;
pugFramework?: "auto" | "vue" | "svelte" | "angular" | undefined;
pugExplicitDiv?: boolean | undefined;
pugPreserveAttributeBrackets?: boolean | undefined;
rubyPlugins?: import("./embedded/utils.js").AutocompleteStringList<"plugin/single_quotes" | "plugin/trailing_comma" | "plugin/disable_auto_ternary"> | undefined;
rubySingleQuote?: boolean | undefined;
rubyExecutablePath?: string | undefined;
xmlSelfClosingSpace?: boolean | undefined;
xmlWhitespaceSensitivity?: "strict" | "preserve" | "ignore" | undefined;
xmlSortAttributesByKey?: boolean | undefined;
xmlQuoteAttributes?: "preserve" | "single" | "double" | undefined;
} | undefined>;
export declare const compareTagExpressionToTagString: (tagExpression: Expression, tagString: string, parse: (text: string) => Node | Promise<Node>) => boolean;
export declare function parseCommentFromTemplateLiteralAstPath({ node, parent, }: AstPath<Node> & {
node: TemplateLiteral;
}): string | undefined;
export declare function parseTagFromTemplateLiteralAstPath({ parent, }: AstPath<Node> & {
node: TemplateLiteral;
}): string | TemplateLiteral | import("estree").ArrayExpression | import("estree").ArrowFunctionExpression | import("estree").AssignmentExpression | import("estree").AwaitExpression | import("estree").BinaryExpression | import("estree").CallExpression | import("estree").ChainExpression | import("estree").ClassExpression | import("estree").ConditionalExpression | import("estree").FunctionExpression | import("estree").ImportExpression | import("estree").Literal | import("estree").LogicalExpression | import("estree").MemberExpression | import("estree").MetaProperty | import("estree").ObjectExpression | import("estree").SequenceExpression | import("estree").TaggedTemplateExpression | import("estree").ThisExpression | import("estree").UnaryExpression | import("estree").UpdateExpression | import("estree").YieldExpression | undefined;
export declare function createCommentsInOptionsGenerator(options: Options, comment: string): (_: EmbeddedLanguage) => Generator<string, void, undefined>;
export declare function createTagsInOptionsGenerator(options: Options, tag?: string): (_: EmbeddedLanguage) => Generator<string, void, undefined>;
export declare function createEmbeddedDoc(node: TemplateLiteral, embeddedLanguage: EmbeddedLanguage, commentOrTag: EmbeddedComment | EmbeddedTag, kind: "comment" | "tag", options: Options): ReturnType<Exclude<Printer["embed"], undefined>>;
export declare function assumeAs<T>(_: unknown): asserts _ is T;
export declare function compareObjects<T1 extends Record<string | number | symbol, unknown>, T2 extends Record<string | number | symbol, unknown>>(value1: T1, value2: T2, ignoreSet?: Set<keyof T1 | keyof T2>): boolean;