1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.9 KiB
TypeScript

import Delta from 'quill-delta';
import type { Blot, ScrollBlot } from 'parchment';
import Inline from '../blots/inline.js';
import Quill from '../core/quill.js';
import Module from '../core/module.js';
import CodeBlock, { CodeBlockContainer } from '../formats/code.js';
declare class CodeToken extends Inline {
static formats(node: Element, scroll: ScrollBlot): any;
constructor(scroll: ScrollBlot, domNode: Node, value: unknown);
format(format: string, value: unknown): void;
optimize(...args: unknown[]): void;
}
declare class SyntaxCodeBlock extends CodeBlock {
static create(value: unknown): HTMLElement;
static formats(domNode: Node): any;
static register(): void;
format(name: string, value: unknown): void;
replaceWith(name: string | Blot, value?: any): Blot;
}
declare class SyntaxCodeBlockContainer extends CodeBlockContainer {
forceNext?: boolean;
cachedText?: string | null;
attach(): void;
format(name: string, value: unknown): void;
formatAt(index: number, length: number, name: string, value: unknown): void;
highlight(highlight: (text: string, language: string) => Delta, forced?: boolean): void;
html(index: number, length: number): string;
optimize(context: Record<string, any>): void;
}
interface SyntaxOptions {
interval: number;
languages: {
key: string;
label: string;
}[];
hljs: any;
}
declare class Syntax extends Module<SyntaxOptions> {
static DEFAULTS: SyntaxOptions & {
hljs: any;
};
static register(): void;
languages: Record<string, true>;
constructor(quill: Quill, options: Partial<SyntaxOptions>);
initListener(): void;
initTimer(): void;
highlight(blot?: SyntaxCodeBlockContainer | null, force?: boolean): void;
highlightBlot(text: string, language?: string): Delta;
}
export { SyntaxCodeBlock as CodeBlock, CodeToken, Syntax as default };