Correct grapheme/handling spelling in UnicodeGraphemesAddon header and everything/addresses typos in WebLinksAddon URL matcher comments. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
/**
|
|
* Copyright (c) 2023 The xterm.js authors. All rights reserved.
|
|
* @license MIT
|
|
*
|
|
* UnicodeVersionProvider for V15 with grapheme cluster handling.
|
|
*/
|
|
|
|
import type { Terminal, ITerminalAddon, IUnicodeHandling } from '@xterm/xterm';
|
|
import type { UnicodeGraphemesAddon as IUnicodeGraphemesApi } from '@xterm/addon-unicode-graphemes';
|
|
import { UnicodeGraphemeProvider } from './UnicodeGraphemeProvider';
|
|
|
|
export class UnicodeGraphemesAddon implements ITerminalAddon, IUnicodeGraphemesApi {
|
|
private _provider15Graphemes?: UnicodeGraphemeProvider;
|
|
private _provider15?: UnicodeGraphemeProvider;
|
|
private _unicode?: IUnicodeHandling;
|
|
private _oldVersion: string = '';
|
|
|
|
public activate(terminal: Terminal): void {
|
|
this._provider15 ??= new UnicodeGraphemeProvider(false);
|
|
this._provider15Graphemes ??= new UnicodeGraphemeProvider(true);
|
|
const unicode = terminal.unicode;
|
|
this._unicode = unicode;
|
|
unicode.register(this._provider15);
|
|
unicode.register(this._provider15Graphemes);
|
|
this._oldVersion = unicode.activeVersion;
|
|
unicode.activeVersion = '15-graphemes';
|
|
}
|
|
|
|
public dispose(): void {
|
|
if (this._unicode) {
|
|
this._unicode.activeVersion = this._oldVersion;
|
|
}
|
|
}
|
|
}
|