62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
import type { AbbreviationAttribute, AbbreviationNode } from '@emmetio/abbreviation';
|
|
import type { Config, Options } from './config.js';
|
|
export interface OutputStream {
|
|
options: Options;
|
|
value: string;
|
|
level: number;
|
|
offset: number;
|
|
line: number;
|
|
column: number;
|
|
}
|
|
export declare const expressionStart = "{";
|
|
export declare const expressionEnd = "}";
|
|
export default function createOutputStream(options: Options, level?: number): OutputStream;
|
|
/**
|
|
* Pushes plain string into output stream without newline processing
|
|
*/
|
|
export declare function push(stream: OutputStream, text: string): void;
|
|
/**
|
|
* Pushes given string with possible newline formatting into output
|
|
*/
|
|
export declare function pushString(stream: OutputStream, value: string): void;
|
|
/**
|
|
* Pushes new line into given output stream
|
|
*/
|
|
export declare function pushNewline(stream: OutputStream, indent?: boolean | number): void;
|
|
/**
|
|
* Adds indentation of `size` to current output stream
|
|
*/
|
|
export declare function pushIndent(stream: OutputStream, size?: number): void;
|
|
/**
|
|
* Pushes field/tabstop into output stream
|
|
*/
|
|
export declare function pushField(stream: OutputStream, index: number, placeholder: string): void;
|
|
/**
|
|
* Returns given tag name formatted according to given config
|
|
*/
|
|
export declare function tagName(name: string, config: Config): string;
|
|
/**
|
|
* Returns given attribute name formatted according to given config
|
|
*/
|
|
export declare function attrName(name: string, config: Config): string;
|
|
/**
|
|
* Returns character for quoting value of given attribute
|
|
*/
|
|
export declare function attrQuote(attr: AbbreviationAttribute, config: Config, isOpen?: boolean): string;
|
|
/**
|
|
* Check if given attribute is boolean
|
|
*/
|
|
export declare function isBooleanAttribute(attr: AbbreviationAttribute, config: Config): boolean;
|
|
/**
|
|
* Returns a token for self-closing tag, depending on current options
|
|
*/
|
|
export declare function selfClose(config: Config): string;
|
|
/**
|
|
* Check if given tag name belongs to inline-level element
|
|
* @param node Parsed node or tag name
|
|
*/
|
|
export declare function isInline(node: string | AbbreviationNode, config: Config): boolean;
|
|
/**
|
|
* Splits given text by lines
|
|
*/
|
|
export declare function splitByLines(text: string): string[];
|