Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/typings/editContext.d.ts
3290 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
type DOMString = string;
7
8
interface EditContext extends EventTarget {
9
10
updateText(rangeStart: number, rangeEnd: number, text: DOMString): void;
11
updateSelection(start: number, end: number): void;
12
updateControlBounds(controlBounds: DOMRect): void;
13
updateSelectionBounds(selectionBounds: DOMRect): void;
14
updateCharacterBounds(rangeStart: number, characterBounds: DOMRect[]): void;
15
16
attachedElements(): HTMLElement[];
17
18
get text(): DOMString;
19
get selectionStart(): number;
20
get selectionEnd(): number;
21
get characterBoundsRangeStart(): number;
22
characterBounds(): DOMRect[];
23
24
get ontextupdate(): EventHandler<TextUpdateEvent> | null;
25
set ontextupdate(value: EventHandler | null);
26
27
get ontextformatupdate(): EventHandler | null;
28
set ontextformatupdate(value: EventHandler | null);
29
30
get oncharacterboundsupdate(): EventHandler | null;
31
set oncharacterboundsupdate(value: EventHandler | null);
32
33
get oncompositionstart(): EventHandler | null;
34
set oncompositionstart(value: EventHandler | null);
35
36
get oncompositionend(): EventHandler | null;
37
set oncompositionend(value: EventHandler | null);
38
39
addEventListener<K extends keyof EditContextEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: EditContextEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
40
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
41
removeEventListener<K extends keyof EditContextEventHandlersEventMap>(type: K, listener: (this: GlobalEventHandlers, ev: EditContextEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
42
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
43
}
44
45
interface EditContextInit {
46
text: DOMString;
47
selectionStart: number;
48
selectionEnd: number;
49
}
50
51
interface EditContextEventHandlersEventMap {
52
textupdate: TextUpdateEvent;
53
textformatupdate: TextFormatUpdateEvent;
54
characterboundsupdate: CharacterBoundsUpdateEvent;
55
compositionstart: Event;
56
compositionend: Event;
57
}
58
59
type EventHandler<TEvent extends Event = Event> = (event: TEvent) => void;
60
61
declare class TextUpdateEvent extends Event {
62
constructor(type: DOMString, options?: TextUpdateEventInit);
63
64
readonly updateRangeStart: number;
65
readonly updateRangeEnd: number;
66
readonly text: DOMString;
67
readonly selectionStart: number;
68
readonly selectionEnd: number;
69
}
70
71
interface TextUpdateEventInit extends EventInit {
72
updateRangeStart: number;
73
updateRangeEnd: number;
74
text: DOMString;
75
selectionStart: number;
76
selectionEnd: number;
77
compositionStart: number;
78
compositionEnd: number;
79
}
80
81
interface TextFormat {
82
new(options?: TextFormatInit): TextFormat;
83
84
readonly rangeStart: number;
85
readonly rangeEnd: number;
86
readonly underlineStyle: UnderlineStyle;
87
readonly underlineThickness: UnderlineThickness;
88
}
89
90
interface TextFormatInit {
91
rangeStart: number;
92
rangeEnd: number;
93
underlineStyle: UnderlineStyle;
94
underlineThickness: UnderlineThickness;
95
}
96
97
type UnderlineStyle = 'none' | 'solid' | 'dotted' | 'dashed' | 'wavy';
98
type UnderlineThickness = 'none' | 'thin' | 'thick';
99
100
interface TextFormatUpdateEvent extends Event {
101
new(type: DOMString, options?: TextFormatUpdateEventInit): TextFormatUpdateEvent;
102
getTextFormats(): TextFormat[];
103
}
104
105
interface TextFormatUpdateEventInit extends EventInit {
106
textFormats: TextFormat[];
107
}
108
109
interface CharacterBoundsUpdateEvent extends Event {
110
new(type: DOMString, options?: CharacterBoundsUpdateEventInit): CharacterBoundsUpdateEvent;
111
112
readonly rangeStart: number;
113
readonly rangeEnd: number;
114
}
115
116
interface CharacterBoundsUpdateEventInit extends EventInit {
117
rangeStart: number;
118
rangeEnd: number;
119
}
120
121
interface HTMLElement {
122
editContext?: EditContext;
123
}
124
125