astro-ghostcms/.pnpm-store/v3/files/34/15e353001c2d33297e7e2581f4c...

102 lines
2.9 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
import { SassFormatterConfig } from './config';
interface FormatContext {
isFirstLine: boolean;
isLastLine: boolean;
isInBlockComment: boolean;
wasLastHeaderIncludeMixin: boolean;
wasLastHeaderNestedProp: boolean;
blockCommentDistance: number;
/**
* The Formatter ignores whitespace until the next selector.
*/
allowSpace: boolean;
/**
* The Formatter Skips one line.
*/
ignoreLine: boolean;
/**
* true if the last line was a selector.
*/
wasLastLineSelector: boolean;
convert: {
lastSelector: string;
wasLastLineCss: boolean;
};
keyframes: {
/**true if in @keyframes body. */
isIn: boolean;
/** the indentation level of the keyframes declaration. */
indentation: number;
};
if: {
/**true if in @if body. */
isIn: boolean;
/** the indentation level of the @if declaration. */
indentation: number;
};
/**
* Indentation level of the last selector
*/
lastSelectorIndentation: number;
/**
* if `.class` is at line 0 and has an indentation level of 0,
* then this property should be set to the current `tabSize`.
*
* so that the properties get the correct indentation level.
*/
indentation: number;
/**
* used if there is there are multiple selectors, example line 0 has
* `.class1,` and line 1 has `#someId` this stores the distance of the first selector (`.class1` in this example)
* so that the indentation of the following selectors gets set to the indentation of the first selector.
*/
firstCommaHeader: {
/**
* distance of the first selector.
*/
distance: number;
/**
* true previous selector ends with a comma
*/ exists: boolean;
};
}
/**
* This is the context for each line.
*/
export interface StateLocalContext {
isReset: boolean;
isAnd: boolean;
isProp: boolean;
indentation: {
offset: number;
distance: number;
};
isAtExtend: boolean;
isClassOrIdSelector: boolean;
isHtmlTag: boolean;
isIf: boolean;
isElse: boolean;
isAtKeyframes: boolean;
isAtKeyframesPoint: boolean;
isAdjacentSelector: boolean;
isInterpolatedProp: boolean;
isInclude: boolean;
isVariable: boolean;
isImport: boolean;
isNestPropHead: boolean;
}
export declare class FormattingState {
lines: string[];
/** Current line index. */
currentLine: number;
LINE_ENDING: '\n' | '\r\n';
/** Formatting Result */
RESULT: string;
/** Context For Each Line. */
LOCAL_CONTEXT: StateLocalContext;
CONTEXT: FormatContext;
CONFIG: SassFormatterConfig;
setLocalContext(context: StateLocalContext): void;
}
export {};