1use js_sys::{Function, RegExp};
2use wasm_bindgen::prelude::*;
3use web_sys::{HtmlElement, HtmlTextAreaElement, KeyboardEvent, MouseEvent};
4use crate::keys::*;
5
6#[wasm_bindgen(module = "xterm")]
7extern "C" {
8
9 #[wasm_bindgen(js_name = "ITerminalOptions")]
10 pub type TerminalOptions;
11
12 #[wasm_bindgen(method, setter, js_name = "allowTransparency")]
13 pub fn set_allow_transparency(this: &TerminalOptions, val: bool);
14
15 #[wasm_bindgen(method, setter, js_name = "bellSound")]
16 pub fn set_bell_sound(this: &TerminalOptions, val: &str);
17
18 #[wasm_bindgen(method, setter, js_name = "bellStyle")]
19 pub fn set_bell_style(this: &TerminalOptions, val: BellStyle);
20
21 #[wasm_bindgen(method, setter, js_name = "convertEol")]
22 pub fn set_convert_eol(this: &TerminalOptions, val: bool);
23
24 #[wasm_bindgen(method, setter, js_name = "cols")]
25 pub fn set_cols(this: &TerminalOptions, val: u32);
26
27 #[wasm_bindgen(method, setter, js_name = "cursorBlink")]
28 pub fn set_cursor_blink(this: &TerminalOptions, val: bool);
29
30 #[wasm_bindgen(method, setter, js_name = "cursorStyle")]
31 pub fn set_cursor_style(this: &TerminalOptions, val: CursorStyle);
32
33 #[wasm_bindgen(method, setter, js_name = "cursorWidth")]
34 pub fn set_cursor_width(this: &TerminalOptions, val: u32);
35
36 #[wasm_bindgen(method, setter, js_name = "disableStdin")]
37 pub fn set_disable_stdin(this: &TerminalOptions, val: bool);
38
39 #[wasm_bindgen(method, setter, js_name = "drawBoldTextInBrightColors")]
40 pub fn set_draw_bold_text_in_bright_colors(this: &TerminalOptions, val: bool);
41
42 #[wasm_bindgen(method, setter, js_name = "fastScrollModifier")]
43 pub fn set_fast_scroll_modifier(this: &TerminalOptions, val: FastScrollModifier);
44
45 #[wasm_bindgen(method, setter, js_name = "fastScrollSensitivity")]
46 pub fn set_fast_scroll_sensitivity(this: &TerminalOptions, val: u32);
47
48 #[wasm_bindgen(method, setter, js_name = "fontSize")]
49 pub fn set_font_size(this: &TerminalOptions, val: u32);
50
51 #[wasm_bindgen(method, setter, js_name = "fontFamily")]
52 pub fn set_font_family(this: &TerminalOptions, val: &str);
53
54 #[wasm_bindgen(method, setter, js_name = "fontWeight")]
55 pub fn set_font_weight(this: &TerminalOptions, val: FontWeight);
56
57 #[wasm_bindgen(method, setter, js_name = "fontWeightBold")]
58 pub fn set_font_weight_bold(this: &TerminalOptions, val: FontWeight);
59
60 #[wasm_bindgen(method, setter, js_name = "letterSpacing")]
61 pub fn set_letter_spacing(this: &TerminalOptions, val: u32);
62
63 #[wasm_bindgen(method, setter, js_name = "lineHeight")]
64 pub fn set_line_height(this: &TerminalOptions, val: u32);
65
66 #[wasm_bindgen(method, setter, js_name = "linkTooltipHoverDuration")]
67 pub fn set_link_tooltip_hover_duration(this: &TerminalOptions, val: u32);
68
69 #[wasm_bindgen(method, setter, js_name = "logLevel")]
70 pub fn set_log_level(this: &TerminalOptions, val: LogLevel);
71
72 #[wasm_bindgen(method, setter, js_name = "macOptionIsMeta")]
73 pub fn set_mac_option_is_meta(this: &TerminalOptions, val: bool);
74
75 #[wasm_bindgen(method, setter, js_name = "macOptionClickForcesSelection")]
76 pub fn set_mac_option_click_forces_selection(this: &TerminalOptions, val: bool);
77
78 #[wasm_bindgen(method, setter, js_name = "minimumContrastRatio")]
79 pub fn set_minimum_contrast_ratio(this: &TerminalOptions, val: u32);
80
81 #[wasm_bindgen(method, setter, js_name = "rendererType")]
82 pub fn set_renderer_type(this: &TerminalOptions, val: RendererType);
83
84 #[wasm_bindgen(method, setter, js_name = "rightClickSelectsWord")]
85 pub fn set_right_click_selects_word(this: &TerminalOptions, val: bool);
86
87 #[wasm_bindgen(method, setter, js_name = "rows")]
88 pub fn set_rows(this: &TerminalOptions, val: u32);
89
90 #[wasm_bindgen(method, setter, js_name = "screenReaderMode")]
91 pub fn set_screen_reader_mode(this: &TerminalOptions, val: bool);
92
93 #[wasm_bindgen(method, setter, js_name = "scrollback")]
94 pub fn set_scrollback(this: &TerminalOptions, val: u32);
95
96 #[wasm_bindgen(method, setter, js_name = "scrollSensitivity")]
97 pub fn set_scroll_sensitivity(this: &TerminalOptions, val: u32);
98
99 #[wasm_bindgen(method, setter, js_name = "tabStopWidth")]
100 pub fn set_tab_stop_width(this: &TerminalOptions, val: u32);
101
102 #[wasm_bindgen(method, setter, js_name = "theme")]
103 pub fn set_theme(this: &TerminalOptions, val: &Theme);
104
105 #[wasm_bindgen(method, setter, js_name = "windowsMode")]
106 pub fn set_windows_mode(this: &TerminalOptions, val: bool);
107
108 #[wasm_bindgen(method, setter, js_name = "wordSeparator")]
109 pub fn set_word_separator(this: &TerminalOptions, val: &str);
110
111 #[wasm_bindgen(method, setter, js_name = "windowOptions")]
112 pub fn set_window_options(this: &TerminalOptions, val: &WindowOptions);
113
114 #[wasm_bindgen(js_name = "ITheme")]
117 pub type Theme;
118
119 #[wasm_bindgen(method, setter, js_name = "foreground")]
120 pub fn set_foreground(this: &Theme, val: &str);
121
122 #[wasm_bindgen(method, setter, js_name = "background")]
123 pub fn set_background(this: &Theme, val: &str);
124
125 #[wasm_bindgen(method, setter, js_name = "cursor")]
126 pub fn set_cursor(this: &Theme, val: &str);
127
128 #[wasm_bindgen(method, setter, js_name = "cursorAccent")]
129 pub fn set_cursor_accent(this: &Theme, val: &str);
130
131 #[wasm_bindgen(method, setter, js_name = "selection")]
132 pub fn set_selection(this: &Theme, val: &str);
133
134 #[wasm_bindgen(method, setter, js_name = "black")]
135 pub fn set_black(this: &Theme, val: &str);
136
137 #[wasm_bindgen(method, setter, js_name = "red")]
138 pub fn set_red(this: &Theme, val: &str);
139
140 #[wasm_bindgen(method, setter, js_name = "green")]
141 pub fn set_green(this: &Theme, val: &str);
142
143 #[wasm_bindgen(method, setter, js_name = "yellow")]
144 pub fn set_yellow(this: &Theme, val: &str);
145
146 #[wasm_bindgen(method, setter, js_name = "blue")]
147 pub fn set_blue(this: &Theme, val: &str);
148
149 #[wasm_bindgen(method, setter, js_name = "magenta")]
150 pub fn set_magenta(this: &Theme, val: &str);
151
152 #[wasm_bindgen(method, setter, js_name = "cyan")]
153 pub fn set_cyan(this: &Theme, val: &str);
154
155 #[wasm_bindgen(method, setter, js_name = "white")]
156 pub fn set_white(this: &Theme, val: &str);
157
158 #[wasm_bindgen(method, setter, js_name = "brightBlack")]
159 pub fn set_bright_black(this: &Theme, val: &str);
160
161 #[wasm_bindgen(method, setter, js_name = "brightRed")]
162 pub fn set_bright_red(this: &Theme, val: &str);
163
164 #[wasm_bindgen(method, setter, js_name = "brightGreen")]
165 pub fn set_bright_green(this: &Theme, val: &str);
166
167 #[wasm_bindgen(method, setter, js_name = "brightYellow")]
168 pub fn set_bright_yellow(this: &Theme, val: &str);
169
170 #[wasm_bindgen(method, setter, js_name = "brightBlue")]
171 pub fn set_bright_blue(this: &Theme, val: &str);
172
173 #[wasm_bindgen(method, setter, js_name = "brightMagenta")]
174 pub fn set_bright_magenta(this: &Theme, val: &str);
175
176 #[wasm_bindgen(method, setter, js_name = "brightCyan")]
177 pub fn set_bright_cyan(this: &Theme, val: &str);
178
179 #[wasm_bindgen(method, setter, js_name = "brightWhite")]
180 pub fn set_bright_white(this: &Theme, val: &str);
181
182 #[wasm_bindgen(js_name = "ILinkMatcherOptions")]
185 pub type LinkMatcherOptions;
186
187 #[wasm_bindgen(method, setter, js_name = "matchIndex")]
188 pub fn set_match_index(this: &LinkMatcherOptions, val: u32);
189
190 #[wasm_bindgen(method, setter, js_name = "validationCallback")]
191 pub fn set_validation_callback(this: &LinkMatcherOptions, val: &Function);
192 #[wasm_bindgen(method, setter, js_name = "tooltipCallback")]
195 pub fn set_tooltip_callback(this: &LinkMatcherOptions, val: &Function);
196 #[wasm_bindgen(method, setter, js_name = "leaveCallback")]
199 pub fn set_leave_callback(this: &LinkMatcherOptions, val: &Function);
200 #[wasm_bindgen(method, setter, js_name = "priority")]
203 pub fn set_priority(this: &LinkMatcherOptions, val: u32);
204
205 #[wasm_bindgen(method, setter, js_name = "willLinkActivate")]
206 pub fn set_will_link_activate(this: &LinkMatcherOptions, val: &Function);
207 #[wasm_bindgen(js_name = "IDisposable")]
212 pub type Disposable;
213
214 #[wasm_bindgen(method, js_name = "dispose")]
215 pub fn dispose(this: &Disposable);
216
217 #[wasm_bindgen(js_name = "IEvent")]
220 pub type Event;
221
222 #[wasm_bindgen(extends = Disposable, js_name = "IMarker")]
229 pub type Marker;
230
231 #[wasm_bindgen(method, getter, js_name = "id")]
232 pub fn get_id(this: &Marker) -> u32;
233
234 #[wasm_bindgen(method, getter, js_name = "isDisposed")]
235 pub fn get_is_disposed(this: &Marker) -> bool;
236
237 #[wasm_bindgen(method, getter, js_name = "line")]
238 pub fn get_line(this: &Marker) -> u32;
239
240 #[wasm_bindgen(js_name = "ILocalizableStrings")]
243 pub type LocalizableStrings;
244
245 #[wasm_bindgen(method, setter, js_name = "promptLabel")]
246 pub fn set_prompt_label(this: &LocalizableStrings, val: &str);
247
248 #[wasm_bindgen(method, setter, js_name = "tooMuchOutput")]
249 pub fn set_too_much_output(this: &LocalizableStrings, val: &str);
250
251 #[wasm_bindgen(js_name = "IWindowOptions")]
254 pub type WindowOptions;
255
256 #[wasm_bindgen(method, setter, js_name = "restoreWin")]
257 pub fn set_restore_win(this: &WindowOptions, val: bool);
258
259 #[wasm_bindgen(method, setter, js_name = "minimizeWin")]
260 pub fn set_minimize_win(this: &WindowOptions, val: bool);
261
262 #[wasm_bindgen(method, setter, js_name = "setWinPosition")]
263 pub fn set_win_position(this: &WindowOptions, val: bool);
264
265 #[wasm_bindgen(method, setter, js_name = "setWinSizePixels")]
266 pub fn set_win_size_pixels(this: &WindowOptions, val: bool);
267
268 #[wasm_bindgen(method, setter, js_name = "raiseWin")]
269 pub fn set_raise_win(this: &WindowOptions, val: bool);
270
271 #[wasm_bindgen(method, setter, js_name = "lowerWin")]
272 pub fn set_lower_win(this: &WindowOptions, val: bool);
273
274 #[wasm_bindgen(method, setter, js_name = "refreshWin")]
275 pub fn set_refresh_win(this: &WindowOptions, val: bool);
276
277 #[wasm_bindgen(method, setter, js_name = "setWinSizeChars")]
278 pub fn set_win_size_chars(this: &WindowOptions, val: bool);
279
280 #[wasm_bindgen(method, setter, js_name = "maximizeWin")]
281 pub fn set_maximize_win(this: &WindowOptions, val: bool);
282
283 #[wasm_bindgen(method, setter, js_name = "fullscreenWin")]
284 pub fn set_fullscreen_win(this: &WindowOptions, val: bool);
285
286 #[wasm_bindgen(method, getter, js_name = "getWinState")]
287 pub fn get_win_state(this: &WindowOptions) -> Option<bool>;
288
289 #[wasm_bindgen(method, getter, js_name = "getWinPosition")]
290 pub fn get_win_position(this: &WindowOptions) -> Option<bool>;
291
292 #[wasm_bindgen(method, getter, js_name = "getWinSizePixels")]
293 pub fn get_win_size_pixels(this: &WindowOptions) -> Option<bool>;
294
295 #[wasm_bindgen(method, getter, js_name = "getScreenSizePixels")]
296 pub fn get_screen_size_pixels(this: &WindowOptions) -> Option<bool>;
297
298 #[wasm_bindgen(method, getter, js_name = "getCellSizePixels")]
299 pub fn get_cell_size_pixels(this: &WindowOptions) -> Option<bool>;
300
301 #[wasm_bindgen(method, getter, js_name = "getWinSizeChars")]
302 pub fn get_win_size_chars(this: &WindowOptions) -> Option<bool>;
303
304 #[wasm_bindgen(method, getter, js_name = "getScreenSizeChars")]
305 pub fn get_screen_size_chars(this: &WindowOptions) -> Option<bool>;
306
307 #[wasm_bindgen(method, getter, js_name = "getIconTitle")]
308 pub fn get_icon_title(this: &WindowOptions) -> Option<bool>;
309
310 #[wasm_bindgen(method, getter, js_name = "getWinTitle")]
311 pub fn get_win_title(this: &WindowOptions) -> Option<bool>;
312
313 #[wasm_bindgen(method, setter, js_name = "pushTitle")]
314 pub fn set_push_title(this: &WindowOptions, val: bool);
315
316 #[wasm_bindgen(method, setter, js_name = "popTitle")]
317 pub fn set_pop_title(this: &WindowOptions, val: bool);
318
319 #[wasm_bindgen(method, setter, js_name = "setWinLines")]
320 pub fn set_win_lines(this: &WindowOptions, val: bool);
321
322 #[wasm_bindgen(extends = Disposable)]
325 pub type Terminal;
326
327 #[wasm_bindgen(constructor)]
328 pub fn construct(options: Option<&TerminalOptions>) -> Terminal;
329
330 #[wasm_bindgen(method, getter, js_name = "element")]
331 pub fn get_element(this: &Terminal) -> HtmlElement;
332
333 #[wasm_bindgen(method, getter, js_name = "textarea")]
334 pub fn get_textarea(this: &Terminal) -> HtmlTextAreaElement;
335
336 #[wasm_bindgen(method, getter, js_name = "rows")]
337 pub fn get_rows(this: &Terminal) -> u32;
338
339 #[wasm_bindgen(method, getter, js_name = "cols")]
340 pub fn get_cols(this: &Terminal) -> u32;
341
342 #[wasm_bindgen(method, getter, js_name = "buffer")]
343 pub fn get_buffer(this: &Terminal) -> BufferNamespace;
344
345 #[wasm_bindgen(method, getter, js_name = "markers")]
346 pub fn get_markers(this: &Terminal) -> Box<[JsValue]>; #[wasm_bindgen(method, getter, js_name = "parser")]
349 pub fn get_parser(this: &Terminal) -> Parser;
350
351 #[wasm_bindgen(method, getter, js_name = "unicode")]
352 pub fn get_unicode(this: &Terminal) -> UnicodeHandling;
353
354 #[wasm_bindgen(static_method_of = Terminal, js_name = "strings")]
355 pub fn get_strings() -> LocalizableStrings;
356
357 #[wasm_bindgen(method, js_name = "onBinary")]
360 pub fn on_binary(
361 this: &Terminal,
362 f: &Function, ) -> Disposable;
364
365 #[wasm_bindgen(method, js_name = "onCursorMove")]
368 pub fn on_cursor_move(
369 this: &Terminal,
370 f: &Function, ) -> Disposable;
372
373 #[wasm_bindgen(method, js_name = "onData")]
376 pub fn on_data(
377 this: &Terminal,
378 f: &Function, ) -> Disposable;
380
381 pub type OnKeyEvent;
384
385 #[wasm_bindgen(method, getter, js_name = "key")]
386 pub fn key(this: &OnKeyEvent) -> String;
387
388 #[wasm_bindgen(method, getter, js_name = "domEvent")]
389 pub fn dom_event(this: &OnKeyEvent) -> KeyboardEvent;
390
391 #[wasm_bindgen(method, js_name = "onKey")]
392 pub fn on_key(
393 this: &Terminal,
394 f: &Function, ) -> Disposable;
396
397 #[wasm_bindgen(method, js_name = "onLineFeed")]
400 pub fn on_line_feed(
401 this: &Terminal,
402 f: &Function, ) -> Disposable;
404
405 #[wasm_bindgen(method, js_name = "onScroll")]
408 pub fn on_scroll(
409 this: &Terminal,
410 f: &Function, ) -> Disposable;
412
413 #[wasm_bindgen(method, js_name = "onSelectionChange")]
416 pub fn on_selection_change(
417 this: &Terminal,
418 f: &Function, ) -> Disposable;
420
421 pub type OnRenderEvent;
424
425 #[wasm_bindgen(method, getter, js_name = "start")]
426 pub fn start(this: &OnRenderEvent) -> u32;
427
428 #[wasm_bindgen(method, getter, js_name = "end")]
429 pub fn end(this: &OnRenderEvent) -> u32;
430
431 #[wasm_bindgen(method, js_name = "onRender")]
432 pub fn on_render(
433 this: &Terminal,
434 f: &Function, ) -> Disposable;
436
437 #[wasm_bindgen(method, js_name = "onResize")]
440 pub fn on_resize(
441 this: &Terminal,
442 f: &Function, ) -> Disposable;
444
445 #[wasm_bindgen(method, js_name = "onTitleChange")]
448 pub fn on_title_change(
449 this: &Terminal,
450 f: &Function, ) -> Disposable;
452
453 #[wasm_bindgen(method, js_name = "blur")]
456 pub fn blur(this: &Terminal);
457
458 #[wasm_bindgen(method, js_name = "focus")]
459 pub fn focus(this: &Terminal);
460
461 #[wasm_bindgen(method, js_name = "resize")]
462 pub fn resize(this: &Terminal, columns: u32, rows: u32);
463
464 #[wasm_bindgen(method, js_name = "open")]
465 pub fn open(this: &Terminal, parent: HtmlElement);
466
467 #[wasm_bindgen(method, js_name = "attachCustomKeyEventHandler")]
468 pub fn attach_custom_key_event_handler(
469 this: &Terminal,
470 custom_key_event_handler: &Function, );
472
473 #[wasm_bindgen(method, js_name = "registerLinkMatcher")]
474 pub fn register_link_matcher(
475 this: &Terminal,
476 regex: RegExp,
477 handler: &Function, options: Option<LinkMatcherOptions>,
479 ) -> u32;
480
481 #[wasm_bindgen(method, js_name = "deregisterLinkMatcher")]
482 pub fn deregister_link_matcher(this: &Terminal, matcher_id: u32);
483
484 #[wasm_bindgen(method, js_name = "registerLinkProvider")]
485 pub fn register_link_provider(this: &Terminal, link_provider: LinkProvider) -> Disposable;
486
487 #[wasm_bindgen(method, js_name = "registerCharacterJoiner")]
488 pub fn register_character_joiner(
489 this: &Terminal,
490 handler: &Function, ) -> u32;
492
493 #[wasm_bindgen(method, js_name = "deregisterCharacterJoiner")]
494 pub fn deregister_character_joiner(this: &Terminal, joiner_id: u32);
495
496 #[wasm_bindgen(method, js_name = "registerMarker")]
497 pub fn register_marker(this: &Terminal, cursorYOffset: u32) -> Option<Marker>;
498
499 #[wasm_bindgen(method, js_name = "addMarker")]
500 pub fn add_marker(this: &Terminal, cursorYOffset: u32) -> Option<Marker>;
501
502 #[wasm_bindgen(method, js_name = "hasSelection")]
503 pub fn has_selection(this: &Terminal) -> bool;
504
505 #[wasm_bindgen(method, js_name = "getSelection")]
506 pub fn get_selection(this: &Terminal) -> String;
507
508 #[wasm_bindgen(method, js_name = "getSelectionPosition")]
509 pub fn get_selection_position(this: &Terminal) -> Option<SelectionPosition>;
510
511 #[wasm_bindgen(method, js_name = "clearSelection")]
512 pub fn clear_selection(this: &Terminal);
513
514 #[wasm_bindgen(method, js_name = "select")]
515 pub fn select(this: &Terminal, column: u32, row: u32, length: u32);
516
517 #[wasm_bindgen(method, js_name = "selectAll")]
518 pub fn select_all(this: &Terminal);
519
520 #[wasm_bindgen(method, js_name = "selectLines")]
521 pub fn select_lines(this: &Terminal, start: u32, end: u32);
522
523 #[wasm_bindgen(method, js_name = "dispose")]
524 pub fn dispose(this: &Terminal);
525
526 #[wasm_bindgen(method, js_name = "scrollLines")]
527 pub fn scroll_lines(this: &Terminal, amount: u32);
528
529 #[wasm_bindgen(method, js_name = "scrollPages")]
530 pub fn scroll_pages(this: &Terminal, page_count: u32);
531
532 #[wasm_bindgen(method, js_name = "scrollToTop")]
533 pub fn scroll_to_top(this: &Terminal);
534
535 #[wasm_bindgen(method, js_name = "scrollToBottom")]
536 pub fn scroll_to_bottom(this: &Terminal);
537
538 #[wasm_bindgen(method, js_name = "scrollToLine")]
539 pub fn scroll_to_line(this: &Terminal, line: u32);
540
541 #[wasm_bindgen(method, js_name = "clear")]
542 pub fn clear(this: &Terminal);
543
544 #[wasm_bindgen(method, js_name = "write")]
547 pub fn write(this: &Terminal, data: &str);
548
549 #[wasm_bindgen(method, js_name = "writeUtf8")]
550 pub fn write_utf8(this: &Terminal, data: &[u8]);
551
552 #[wasm_bindgen(method, js_name = "write")]
553 pub fn write_callback(this: &Terminal, data: &str, callback: &Function); #[wasm_bindgen(method, js_name = "writeUtf8")]
556 pub fn write_utf8_callback(this: &Terminal, data: &[u8], callback: &Function); #[wasm_bindgen(method, js_name = "writeln")]
561 pub fn writeln(this: &Terminal, data: &str);
562
563 #[wasm_bindgen(method, js_name = "writeln")]
564 pub fn writeln_utf8(this: &Terminal, data: &[u8]);
565
566 #[wasm_bindgen(method, js_name = "writeln")]
567 pub fn writeln_with_callback(this: &Terminal, data: &str, callback: Option<&Function>); #[wasm_bindgen(method, js_name = "writeln")]
570 pub fn writeln_utf8_with_callback(this: &Terminal, data: &[u8], callback: Option<&Function>); #[wasm_bindgen(method, js_name = "paste")]
575 pub fn paste(this: &Terminal, data: &str);
576
577 #[wasm_bindgen(method, js_name = "getOption")]
578 pub fn get_string_option(this: &Terminal, key: StringOptionKey) -> String;
579
580 #[wasm_bindgen(method, js_name = "getOption")]
581 pub fn get_bool_option(this: &Terminal, key: BoolOptionKey) -> bool;
582
583 #[wasm_bindgen(method, js_name = "getOption")]
584 pub fn get_number_option(this: &Terminal, key: NumberOptionKey) -> u32;
585
586 #[wasm_bindgen(method, js_name = "getOption")]
587 pub fn get_any_option(this: &Terminal, key: &str) -> JsValue;
588
589 #[wasm_bindgen(method, js_name = "setOption")]
590 pub fn set_string_option(this: &Terminal, key: StringOptionKey, value: &str);
591
592 #[wasm_bindgen(method, js_name = "setOption")]
593 pub fn set_font_option(this: &Terminal, key: FontWeightKey, value: FontWeight);
594
595 #[wasm_bindgen(method, js_name = "setOption")]
596 pub fn set_log_level_option(this: &Terminal, key: LogLevelKey, value: LogLevel);
597
598 #[wasm_bindgen(method, js_name = "setOption")]
599 pub fn set_bell_style_option(this: &Terminal, key: BellStyleKey, value: BellStyle);
600
601 #[wasm_bindgen(method, js_name = "setOption")]
602 pub fn set_cursor_option(this: &Terminal, key: CursorStyleKey, value: CursorStyle);
603
604 #[wasm_bindgen(method, js_name = "setOption")]
605 pub fn set_bool_option(this: &Terminal, key: BoolOptionKey, value: bool);
606
607 #[wasm_bindgen(method, js_name = "setOption")]
608 pub fn set_number_option(this: &Terminal, key: NumberOptionKey, value: u32);
609
610 #[wasm_bindgen(method, js_name = "setOption")]
611 pub fn set_theme_option(this: &Terminal, key: ThemeKey, value: Theme);
612
613 #[wasm_bindgen(method, js_name = "setOption")]
614 pub fn set_any_option(this: &Terminal, key: &str, value: JsValue);
615
616 #[wasm_bindgen(method, js_name = "refresh")]
617 pub fn refresh(this: &Terminal, start: u32, end: u32);
618
619 #[wasm_bindgen(method, js_name = "reset")]
620 pub fn reset(this: &Terminal);
621
622 #[wasm_bindgen(method, js_name = "loadAddon")]
623 pub fn load_addon(this: &Terminal, addon: TerminalAddon);
624
625 #[wasm_bindgen(extends = Disposable, js_name = "ITerminalAddon")]
628 pub type TerminalAddon;
629
630 #[wasm_bindgen(method)]
631 pub fn activate(this: &TerminalAddon, terminal: Terminal);
632
633 #[wasm_bindgen(js_name = "ISelectionPosition")]
636 pub type SelectionPosition;
637
638 #[wasm_bindgen(method, getter, js_name = "startColumn")]
639 pub fn start_column(this: &SelectionPosition) -> u32;
640
641 #[wasm_bindgen(method, getter, js_name = "startRow")]
642 pub fn start_row(this: &SelectionPosition) -> u32;
643
644 #[wasm_bindgen(method, getter, js_name = "endColumn")]
645 pub fn end_column(this: &SelectionPosition) -> u32;
646
647 #[wasm_bindgen(method, getter, js_name = "endRow")]
648 pub fn end_row(this: &SelectionPosition) -> u32;
649
650 #[wasm_bindgen(js_name = "IViewportRange")]
653 pub type ViewportRange;
654
655 #[wasm_bindgen(method, getter, js_name = "start")]
656 pub fn get_start(this: &ViewportRange) -> ViewportRangePosition;
657
658 #[wasm_bindgen(method, getter, js_name = "end")]
659 pub fn get_end(this: &ViewportRange) -> ViewportRangePosition;
660
661 #[wasm_bindgen(method, setter, js_name = "start")]
662 pub fn set_start(this: &ViewportRange, val: &ViewportRangePosition);
663
664 #[wasm_bindgen(method, setter, js_name = "end")]
665 pub fn set_end(this: &ViewportRange, val: &ViewportRangePosition);
666
667 #[wasm_bindgen(js_name = "IViewportRangePosition")]
670 pub type ViewportRangePosition;
671
672 #[wasm_bindgen(method, setter, js_name = "x")]
673 pub fn set_x(this: &ViewportRangePosition, val: u32);
674
675 #[wasm_bindgen(method, setter, js_name = "y")]
676 pub fn set_y(this: &ViewportRangePosition, val: u32);
677
678 #[wasm_bindgen(js_name = "ILinkProvider")]
681 pub type LinkProvider;
682
683 #[wasm_bindgen(method, js_name = "provideLinks")]
684 pub fn provide_links(
685 this: &LinkProvider,
686 buffer_lineu32: u32,
687 callback: &Function, );
689
690 #[wasm_bindgen(js_name = "ILink")]
693 pub type Link;
694
695 #[wasm_bindgen(method, setter, js_name = "range")]
696 pub fn set_range(this: &Link, val: &BufferRange);
697
698 #[wasm_bindgen(method, setter, js_name = "text")]
699 pub fn set_text(this: &Link, val: &str);
700
701 #[wasm_bindgen(method, setter, js_name = "decorations")]
702 pub fn set_decorations(this: &Link, val: &LinkDecorations);
703
704 #[wasm_bindgen(method, js_name = "activate")]
705 pub fn activate(this: &Link, event: MouseEvent, text: &str);
706
707 #[wasm_bindgen(method, js_name = "hover")]
708 pub fn hover(this: &Link, event: MouseEvent, text: &str);
709
710 #[wasm_bindgen(method, js_name = "leave")]
711 pub fn leave(this: &Link, event: MouseEvent, text: &str);
712
713 #[wasm_bindgen(js_name = "ILinkDecorations")]
716 pub type LinkDecorations;
717
718 #[wasm_bindgen(method, setter, js_name = "pointerCursor")]
719 pub fn set_pointer_cursor(this: &BufferNamespace, val: bool);
720
721 #[wasm_bindgen(method, setter, js_name = "underline")]
722 pub fn set_underline(this: &BufferNamespace, val: bool);
723
724 #[wasm_bindgen(js_name = "IBufferRange")]
727 pub type BufferRange;
728
729 #[wasm_bindgen(method, getter, js_name = "start")]
730 pub fn get_start(this: &BufferRange) -> BufferCellPosition;
731
732 #[wasm_bindgen(method, getter, js_name = "end")]
733 pub fn get_end(this: &BufferRange) -> BufferCellPosition;
734
735 #[wasm_bindgen(js_name = "IBufferCellPosition")]
738 pub type BufferCellPosition;
739
740 #[wasm_bindgen(method, getter, js_name = "x")]
741 pub fn get_x(this: &BufferCellPosition) -> u32;
742
743 #[wasm_bindgen(method, getter, js_name = "y")]
744 pub fn get_y(this: &BufferCellPosition) -> u32;
745
746 #[wasm_bindgen(js_name = "IBuffer")]
749 pub type Buffer;
750
751 #[wasm_bindgen(method, getter, js_name = "type")]
752 pub fn get_type(this: &Buffer) -> BufferType;
753
754 #[wasm_bindgen(method, getter, js_name = "cursorY")]
755 pub fn get_cursor_y(this: &Buffer) -> u32;
756
757 #[wasm_bindgen(method, getter, js_name = "cursorX")]
758 pub fn get_cursor_x(this: &Buffer) -> u32;
759
760 #[wasm_bindgen(method, getter, js_name = "viewportY")]
761 pub fn get_viewport_y(this: &Buffer) -> u32;
762
763 #[wasm_bindgen(method, getter, js_name = "baseY")]
764 pub fn get_base_y(this: &Buffer) -> u32;
765
766 #[wasm_bindgen(method, getter, js_name = "length")]
767 pub fn get_length(this: &Buffer) -> u32;
768
769 #[wasm_bindgen(method, js_name = "getLine")]
770 pub fn get_line(this: &Buffer, y: u32) -> BufferLine;
771
772 #[wasm_bindgen(method, js_name = "getNullCell")]
773 pub fn get_null_cell(this: &Buffer) -> BufferCell;
774
775 #[wasm_bindgen(js_name = "IBufferNamespace")]
778 pub type BufferNamespace;
779
780 #[wasm_bindgen(method, getter, js_name = "active")]
781 pub fn get_active(this: &BufferNamespace) -> Buffer;
782
783 #[wasm_bindgen(method, getter, js_name = "normal")]
784 pub fn get_normal(this: &BufferNamespace) -> Buffer;
785
786 #[wasm_bindgen(method, getter, js_name = "alternate")]
787 pub fn get_alternate(this: &BufferNamespace) -> Buffer;
788
789 #[wasm_bindgen(method, setter, js_name = "onBufferChange")]
790 pub fn set_on_buffer_change(this: &BufferNamespace, val: &Function);
791
792 #[wasm_bindgen(js_name = "IBufferLine")]
795 pub type BufferLine;
796
797 #[wasm_bindgen(method, getter, js_name = "isWrapped")]
798 pub fn is_wrapped(this: &BufferLine) -> bool;
799
800 #[wasm_bindgen(method, getter, js_name = "length")]
801 pub fn get_length(this: &BufferLine) -> u32;
802
803 #[wasm_bindgen(method, js_name = "getCell")]
804 pub fn get_cell(this: &BufferLine, x: u32, cell: Option<BufferCell>) -> Option<BufferCell>;
805
806 #[wasm_bindgen(method, js_name = "translateToString")]
807 pub fn translate_to_String(
808 this: &BufferLine,
809 trim_right: bool,
810 start_column: Option<u32>,
811 end_column: Option<u32>,
812 ) -> String;
813
814 #[wasm_bindgen(js_name = "IBufferCell")]
817 pub type BufferCell;
818
819 #[wasm_bindgen(method, js_name = "getWidth")]
820 pub fn get_width(this: &BufferCell) -> u32;
821
822 #[wasm_bindgen(method, js_name = "getChars")]
823 pub fn get_chars(this: &BufferCell) -> String;
824
825 #[wasm_bindgen(method, js_name = "getCode")]
826 pub fn get_code(this: &BufferCell) -> u32;
827
828 #[wasm_bindgen(method, js_name = "getFgColorMode")]
829 pub fn get_fg_color_mode(this: &BufferCell) -> u32;
830
831 #[wasm_bindgen(method, js_name = "getBgColorMode")]
832 pub fn get_bg_color_mode(this: &BufferCell) -> u32;
833
834 #[wasm_bindgen(method, js_name = "getFgColor")]
835 pub fn get_fg_color(this: &BufferCell) -> u32;
836
837 #[wasm_bindgen(method, js_name = "getBgColor")]
838 pub fn bg_color(this: &BufferCell) -> u32;
839
840 #[wasm_bindgen(method, js_name = "isBold")]
841 pub fn is_bold(this: &BufferCell) -> u32;
842
843 #[wasm_bindgen(method, js_name = "isItalic")]
844 pub fn is_italic(this: &BufferCell) -> u32;
845
846 #[wasm_bindgen(method, js_name = "isDim")]
847 pub fn is_dim(this: &BufferCell) -> u32;
848
849 #[wasm_bindgen(method, js_name = "isUnderline")]
850 pub fn is_underline(this: &BufferCell) -> u32;
851
852 #[wasm_bindgen(method, js_name = "isBlink")]
853 pub fn is_blink(this: &BufferCell) -> u32;
854
855 #[wasm_bindgen(method, js_name = "isInverse")]
856 pub fn is_inverse(this: &BufferCell) -> u32;
857
858 #[wasm_bindgen(method, js_name = "isInvisible")]
859 pub fn is_invisible(this: &BufferCell) -> u32;
860
861 #[wasm_bindgen(method, js_name = "isFgRGB")]
862 pub fn is_fg_rgb(this: &BufferCell) -> bool;
863
864 #[wasm_bindgen(method, js_name = "isBgRGB")]
865 pub fn is_bg_rgb(this: &BufferCell) -> bool;
866
867 #[wasm_bindgen(method, js_name = "isFgPalette")]
868 pub fn is_fg_palette(this: &BufferCell) -> bool;
869
870 #[wasm_bindgen(method, js_name = "isBgPalette")]
871 pub fn is_bg_palette(this: &BufferCell) -> bool;
872
873 #[wasm_bindgen(method, js_name = "isFgDefault")]
874 pub fn is_fg_default(this: &BufferCell) -> bool;
875
876 #[wasm_bindgen(method, js_name = "isBgDefault")]
877 pub fn is_bg_default(this: &BufferCell) -> bool;
878
879 #[wasm_bindgen(method, js_name = "isAttributeDefault")]
880 pub fn is_attribute_default(this: &BufferCell) -> bool;
881
882 #[wasm_bindgen(js_name = "IFunctionIdentifier")]
885 pub type FunctionIdentifier;
886
887 #[wasm_bindgen(method, setter, js_name = "prefix")]
888 pub fn set_prefix(this: &FunctionIdentifier, val: &str);
889
890 #[wasm_bindgen(method, setter, js_name = "intermediates")]
891 pub fn set_intermediates(this: &FunctionIdentifier, val: &str);
892
893 #[wasm_bindgen(method, setter, js_name = "final")]
894 pub fn set_final(this: &FunctionIdentifier, val: &str);
895
896 #[wasm_bindgen(js_name = "IParser")]
899 pub type Parser;
900
901 #[wasm_bindgen(method, js_name = "registerCsiHandler")]
902 pub fn register_csi_handler(
903 this: &FunctionIdentifier,
904 id: FunctionIdentifier,
905 callback: &Function, ) -> Disposable;
907
908 #[wasm_bindgen(method, js_name = "registerDcsHandler")]
909 pub fn register_dcs_handler(
910 this: &FunctionIdentifier,
911 id: FunctionIdentifier,
912 callback: &Function, ) -> Disposable;
914
915 #[wasm_bindgen(method, js_name = "registerEscHandler")]
916 pub fn register_esc_handler(
917 this: &FunctionIdentifier,
918 id: FunctionIdentifier,
919 handler: &Function, ) -> Disposable;
921
922 #[wasm_bindgen(method, js_name = "registerOscHandler")]
923 pub fn register_osc_handler(
924 this: &FunctionIdentifier,
925 ident: u32,
926 callback: &Function, ) -> Disposable;
928
929 #[wasm_bindgen(js_name = "IUnicodeVersionProvider")]
932 pub type UnicodeVersionProvider;
933
934 #[wasm_bindgen(method, getter, js_name = "version")]
935 pub fn get_version(this: &UnicodeVersionProvider) -> String;
936
937 #[wasm_bindgen(method, js_name = "wcwidth")]
938 pub fn wcwidth(this: &ViewportRangePosition, codepoint: u32) -> WcWidth;
939
940 #[wasm_bindgen(js_name = "IUnicodeHandling")]
943 pub type UnicodeHandling;
944
945 #[wasm_bindgen(method, js_name = "register")]
946 pub fn register(this: &UnicodeHandling, provider: UnicodeVersionProvider);
947
948 #[wasm_bindgen(method, getter, js_name = "versions")]
949 pub fn get_versions(this: &UnicodeHandling) -> Box<[JsValue]>; #[wasm_bindgen(method, getter, js_name = "activeVersion")]
952 pub fn get_active_version(this: &UnicodeHandling) -> String;
953
954}
955