/** * CSS Language Object * @implements {Language<{ LangOptions: CSSLanguageOptions; Code: CSSSourceCode; RootNode: StyleSheetPlain; Node: CssNodePlain}>} */ export class CSSLanguage implements Language { /** * The type of file to read. * @type {"text"} */ fileType: "text"; /** * The line number at which the parser starts counting. * @type {0|1} */ lineStart: 0 | 1; /** * The column number at which the parser starts counting. * @type {0|1} */ columnStart: 0 | 1; /** * The name of the key that holds the type of the node. * @type {string} */ nodeTypeKey: string; /** * The visitor keys for the CSSTree AST. * @type {Record} */ visitorKeys: Record; /** * The default language options. * @type {CSSLanguageOptions} */ defaultLanguageOptions: CSSLanguageOptions; /** * Validates the language options. * @param {CSSLanguageOptions} languageOptions The language options to validate. * @returns {void} * @throws {TypeError} When the language options are invalid. */ validateLanguageOptions(languageOptions: CSSLanguageOptions): void; /** * Normalizes the language options so they can be serialized. * @param {CSSLanguageOptions} languageOptions The language options to normalize. * @returns {CSSLanguageOptions} The normalized language options. */ normalizeLanguageOptions(languageOptions: CSSLanguageOptions): CSSLanguageOptions; /** * Parses the given file into an AST. * @param {File} file The virtual file to parse. * @param {Object} [context] The parsing context. * @param {CSSLanguageOptions} [context.languageOptions] The language options to use for parsing. * @returns {CSSParseResult} The result of parsing. */ parse(file: File, { languageOptions }?: { languageOptions?: CSSLanguageOptions; }): CSSParseResult; /** * Creates a new `CSSSourceCode` object from the given information. * @param {File} file The virtual file to create a `CSSSourceCode` object from. * @param {CSSOkParseResult} parseResult The result returned from `parse()`. * @returns {CSSSourceCode} The new `CSSSourceCode` object. */ createSourceCode(file: File, parseResult: CSSOkParseResult): CSSSourceCode; } export type CSSOkParseResult = OkParseResult & { comments: Comment[]; lexer: Lexer; }; export type CSSParseResult = ParseResult; /** * DefaultSyntaxConfig type representing the structure returned by `@eslint/css-tree/definition-syntax-data`. * This type is defined inline because it's not exported from the main `@eslint/css-tree` package. */ export type DefaultSyntaxConfig = Pick; export type SyntaxExtensionCallback = (defaultSyntax: DefaultSyntaxConfig) => Partial; export type CSSLanguageOptions = { /** * Whether to be tolerant of recoverable parsing errors. */ tolerant?: boolean; /** * Custom syntax to use for parsing. */ customSyntax?: Partial | SyntaxExtensionCallback; }; import type { Language } from "@eslint/core"; import type { File } from "@eslint/core"; import { CSSSourceCode } from "./css-source-code.js"; import type { StyleSheetPlain } from "@eslint/css-tree"; import type { OkParseResult } from "@eslint/core"; import type { Comment } from "@eslint/css-tree"; import type { Lexer } from "@eslint/css-tree"; import type { ParseResult } from "@eslint/core"; import type { SyntaxConfig } from "@eslint/css-tree";