logsdx
Version:
<div align="center"><img alt="logsdx" width="300" src="https://github.com/user-attachments/assets/cc2a3b55-5bfd-44e8-a330-bfa146b50059" /></div>
77 lines (76 loc) • 3.12 kB
TypeScript
import type { Token, TokenList } from "../schema/types";
import type { Theme } from "../types";
import type { MatcherType } from "./types";
export declare class TokenContext {
text: string;
type: string;
value?: unknown;
ignored?: boolean;
constructor(text: string, type: string);
accept(type: string, value?: unknown): void;
ignore(): void;
}
export declare class SimpleLexer {
private rules;
private inputContent;
private position;
rule(pattern: RegExp, action: (ctx: TokenContext) => void): void;
input(text: string): void;
token(): {
type: string;
text: string;
value?: unknown;
} | null;
private findMatchingToken;
private consumeUnmatchedText;
tokenize(input: string): ReadonlyArray<{
type: string;
text: string;
value?: unknown;
}>;
}
export declare function addWhitespaceRules(lexer: SimpleLexer): void;
export declare function addDefaultLogRules(lexer: SimpleLexer): void;
export declare function addTrimWhitespaceRules(lexer: SimpleLexer): void;
export declare function addTrimNewlineRules(lexer: SimpleLexer): void;
export declare function addWordMatchRules(lexer: SimpleLexer, matchWords: Record<string, unknown>): void;
export declare function addPatternMatchRules(lexer: SimpleLexer, matchPatterns: ReadonlyArray<{
pattern: string | RegExp;
name?: string;
identifier?: string;
options?: unknown;
}>): void;
export declare function addThemeRules(lexer: SimpleLexer, theme: Theme): void;
export declare function createLexer(theme?: Theme): SimpleLexer;
export declare function createDefaultToken(line: string): Token;
export declare function shouldUseDefaultToken(theme?: Theme): boolean;
export declare function createTokenMetadata(matchType: MatcherType, tokenType: string, tokenValue: unknown): Token["metadata"];
export declare function convertLexerToken(lexerToken: {
type: string;
text: string;
value?: unknown;
}): Token;
export declare function convertLexerTokens(lexerTokens: ReadonlyArray<{
type: string;
text: string;
value?: unknown;
}>): TokenList;
export declare function tokenize(line: string, theme?: Theme): TokenList;
export declare function findPatternByName(matchPatterns: unknown, name: unknown): {
options?: unknown;
} | undefined;
export declare function findPatternByIndex(matchPatterns: unknown, index: number): {
options?: unknown;
} | undefined;
export declare function applyWordStyle(token: Token, theme: Theme): Token | undefined;
export declare function applyPatternStyleByName(token: Token, theme: Theme): Token | undefined;
export declare function applyPatternStyleByIndex(token: Token, theme: Theme): Token | undefined;
export declare function applyDefaultStyle(token: Token, theme: Theme): Token;
export declare function applyTokenStyle(token: Token, theme: Theme): Token;
export declare function applyTheme(tokens: TokenList, theme: Theme): TokenList;
declare const _default: {
tokenize: typeof tokenize;
applyTheme: typeof applyTheme;
createLexer: typeof createLexer;
};
export default _default;