Set unicode.activeVersion when loading UnicodeGraphemeProvider.

This commit is contained in:
Per Bothner
2023-08-18 14:17:39 -07:00
parent 21fd545381
commit 00fd2b8503
2 changed files with 19 additions and 6 deletions
@@ -19,7 +19,4 @@ import { UnicodeGraphemeAddon } from 'xterm-addon-unicode-graphemes';
const terminal = new Terminal();
const unicodeGraphemeAddon = new UnicodeGraphemeAddon();
terminal.loadAddon(unicodeGraphemeAddon);
// activate the new version
terminal.unicode.activeVersion = '15';
```
@@ -5,13 +5,29 @@
* UnicodeVersionProvider for V15 with grapeme cluster handleing.
*/
import { Terminal, ITerminalAddon } from 'xterm';
import { Terminal, ITerminalAddon, IUnicodeHandling } from 'xterm';
import { UnicodeGraphemeProvider } from './UnicodeGraphemeProvider';
export class UnicodeGraphemesAddon implements ITerminalAddon {
private _provider?: UnicodeGraphemeProvider;
private _unicode?: IUnicodeHandling;
private _oldVersion: string = '';
public activate(terminal: Terminal): void {
terminal.unicode.register(new UnicodeGraphemeProvider());
if (! this._provider) {
this._provider = new UnicodeGraphemeProvider();
}
const unicode = terminal.unicode;
this._unicode = unicode;
unicode.register(this._provider);
this._oldVersion = unicode.activeVersion;
unicode.activeVersion = '15-graphemes';
}
public dispose(): void {
if (this._unicode) {
this._unicode.activeVersion = this._oldVersion;
}
}
public dispose(): void { }
}