@init-kz/init-code-highlight-ts
Version:
A micro code-editor for awesome web pages
80 lines (76 loc) • 2.67 kB
TypeScript
import Prism from 'prismjs';
interface InitCodeHighlightOptions {
languagesUrl?: string;
rtl?: boolean;
tabSize?: number;
enableAutocorrect?: boolean;
lineNumbers?: boolean;
defaultTheme?: boolean;
areaId?: string | null;
ariaLabelledby?: string | null;
readonly?: boolean;
copyButton?: boolean;
maxLines?: number;
minLines?: number;
language?: string;
styleParent?: HTMLElement;
handleTabs?: boolean;
handleSelfClosingCharacters?: boolean;
handleNewLineIndentation?: boolean;
}
type InitHighlightEventMap = {
_input: (ev: Event) => void;
_keydown: (ev: KeyboardEvent) => void;
_scroll: (ev: Event) => void;
};
declare class InitCodeHighlight {
editorRoot: HTMLElement;
opts: InitCodeHighlightOptions;
events: InitHighlightEventMap;
code: string;
elWrapper: HTMLElement;
elTextarea: HTMLTextAreaElement;
elPre: HTMLElement;
elCode: HTMLElement;
elLineNumbers: HTMLElement;
elCopyButton: HTMLElement;
elCopyButtonMessage: HTMLElement;
lineNumber: number;
constructor(selectorOrElement: string | HTMLElement, opts: InitCodeHighlightOptions);
protected startEditor(): void;
protected createWrapper(): void;
protected createTextarea(): void;
protected createPre(): void;
protected createCode(): void;
protected createLineNumbers(): void;
protected createCopyButton(): void;
protected destroyLineNumbers(): void;
protected createElement(elementTag: string, whereToAppend: HTMLElement): HTMLElement;
protected runOptions(): void;
protected updateLineNumbersCount(): void;
protected updateEditorHeight(): void;
protected listenTextarea(): void;
protected handleTabs(e: KeyboardEvent): void;
protected handleSelfClosingCharacters(e: KeyboardEvent): void;
protected setLineNumber(): void;
protected handleNewLineIndentation(e: KeyboardEvent): void;
protected closeCharacter(char: string): void;
protected skipCloseChar(char: string): boolean;
updateCode(newCode: string): void;
updateLanguage(newLanguage: string): void;
getPrism(): typeof Prism;
protected populateDefault(): void;
highlight(): void;
protected updateCallBack: ((code: string) => void) | null;
onUpdate(callback: (code: string) => void): void;
getCode(): string;
runUpdate(): void;
enableReadonlyMode(): void;
disableReadonlyMode(): void;
toggleReadonlyMode(): void;
enableLineNumbers(): void;
disableLineNumbers(): void;
toggleLineNumbers(): void;
dispose(): void;
}
export { type InitCodeHighlightOptions, InitCodeHighlight as default };