1 module nvimhost.api;
2 import nvimhost.client;
3 import msgpack : ExtValue;
4 // Auto generated
5 
6 alias Buffer = int;
7 alias Window = int;
8 alias Tabpage = int;
9 
10 struct NvimAPI {
11 
12 private:
13 
14     auto client = NvimClient();
15 
16 public:
17 
18     NvimClient getClient() {
19         return client;
20     }
21 
22     void enableLog() {
23         client.enableLog();
24     }
25 
26     bool exists(string varName) {
27         auto cmdOut = this.commandOutput("echo exists('" ~ varName ~ "')");
28         if (cmdOut == "1") {
29             return true;
30         }
31         return false;
32     }
33 
34     auto getVarAs(T=string)(string varName) {
35         import std.conv;
36         auto cmdOut = this.commandOutput("echo " ~ varName);
37         return cmdOut.to!(T);
38     }
39 
40     void eval(string expr) {
41 
42         return client.call!(void)("nvim_eval", expr);
43 
44     }
45 
46     void evalAsync(string expr) {
47 
48         return client.callAsync!(void)("nvim_eval", expr);
49 
50     }
51 
52     int bufLineCount(Buffer buffer) {
53 
54         return client.call!(int)("nvim_buf_line_count", buffer);
55 
56     }
57 
58     string bufferGetLine(Buffer buffer, int index) {
59 
60         return client.call!(string)("buffer_get_line", buffer , index);
61 
62     }
63 
64     bool bufDetach(Buffer buffer) {
65 
66         return client.call!(bool)("nvim_buf_detach", buffer);
67 
68     }
69 
70     void bufferSetLine(Buffer buffer, int index, string line) {
71 
72         client.call!(void)("buffer_set_line", buffer , index , line);
73 
74     }
75 
76     void bufferSetLineAsync(Buffer buffer, int index, string line) {
77 
78         client.callAsync!(void)("buffer_set_line", buffer , index , line);
79 
80     }
81 
82     void bufferDelLine(Buffer buffer, int index) {
83 
84         client.call!(void)("buffer_del_line", buffer , index);
85 
86     }
87 
88     void bufferDelLineAsync(Buffer buffer, int index) {
89 
90         client.callAsync!(void)("buffer_del_line", buffer , index);
91 
92     }
93 
94     string[] bufferGetLineSlice(Buffer buffer, int start, int end, bool include_start, bool include_end) {
95 
96         return client.call!(string[])("buffer_get_line_slice", buffer , start , end , include_start , include_end);
97 
98     }
99 
100     string[] bufGetLines(Buffer buffer, int start, int end, bool strict_indexing) {
101 
102         return client.call!(string[])("nvim_buf_get_lines", buffer , start , end , strict_indexing);
103 
104     }
105 
106     void bufferSetLineSlice(Buffer buffer, int start, int end, bool include_start, bool include_end, string[] replacement) {
107 
108         client.call!(void)("buffer_set_line_slice", buffer , start , end , include_start , include_end , replacement);
109 
110     }
111 
112     void bufferSetLineSliceAsync(Buffer buffer, int start, int end, bool include_start, bool include_end, string[] replacement) {
113 
114         client.callAsync!(void)("buffer_set_line_slice", buffer , start , end , include_start , include_end , replacement);
115 
116     }
117 
118     void bufSetLines(Buffer buffer, int start, int end, bool strict_indexing, string[] replacement) {
119 
120         client.call!(void)("nvim_buf_set_lines", buffer , start , end , strict_indexing , replacement);
121 
122     }
123 
124     void bufSetLinesAsync(Buffer buffer, int start, int end, bool strict_indexing, string[] replacement) {
125 
126         client.callAsync!(void)("nvim_buf_set_lines", buffer , start , end , strict_indexing , replacement);
127 
128     }
129 
130     int bufGetChangedtick(Buffer buffer) {
131 
132         return client.call!(int)("nvim_buf_get_changedtick", buffer);
133 
134     }
135 
136     void bufDelVar(Buffer buffer, string name) {
137 
138         client.call!(void)("nvim_buf_del_var", buffer , name);
139 
140     }
141 
142     void bufDelVarAsync(Buffer buffer, string name) {
143 
144         client.callAsync!(void)("nvim_buf_del_var", buffer , name);
145 
146     }
147 
148     int bufGetNumber(Buffer buffer) {
149 
150         return client.call!(int)("nvim_buf_get_number", buffer);
151 
152     }
153 
154     string bufGetName(Buffer buffer) {
155 
156         return client.call!(string)("nvim_buf_get_name", buffer);
157 
158     }
159 
160     void bufSetName(Buffer buffer, string name) {
161 
162         client.call!(void)("nvim_buf_set_name", buffer , name);
163 
164     }
165 
166     void bufSetNameAsync(Buffer buffer, string name) {
167 
168         client.callAsync!(void)("nvim_buf_set_name", buffer , name);
169 
170     }
171 
172     bool bufIsValid(Buffer buffer) {
173 
174         return client.call!(bool)("nvim_buf_is_valid", buffer);
175 
176     }
177 
178     void bufferInsert(Buffer buffer, int lnum, string[] lines) {
179 
180         client.call!(void)("buffer_insert", buffer , lnum , lines);
181 
182     }
183 
184     void bufferInsertAsync(Buffer buffer, int lnum, string[] lines) {
185 
186         client.callAsync!(void)("buffer_insert", buffer , lnum , lines);
187 
188     }
189 
190     int[2] bufGetMark(Buffer buffer, string name) {
191 
192         return client.call!(int[2])("nvim_buf_get_mark", buffer , name);
193 
194     }
195 
196     int bufAddHighlight(Buffer buffer, int src_id, string hl_group, int line, int col_start, int col_end) {
197 
198         return client.call!(int)("nvim_buf_add_highlight", buffer , src_id , hl_group , line , col_start , col_end);
199 
200     }
201 
202     void bufClearHighlight(Buffer buffer, int src_id, int line_start, int line_end) {
203 
204         client.call!(void)("nvim_buf_clear_highlight", buffer , src_id , line_start , line_end);
205 
206     }
207 
208     void bufClearHighlightAsync(Buffer buffer, int src_id, int line_start, int line_end) {
209 
210         client.callAsync!(void)("nvim_buf_clear_highlight", buffer , src_id , line_start , line_end);
211 
212     }
213 
214     Window[] tabpageListWins(Tabpage tabpage) {
215 
216         return client.call!(ExtValue[])("nvim_tabpage_list_wins", tabpage);
217 
218     }
219 
220     void tabpageDelVar(Tabpage tabpage, string name) {
221 
222         client.call!(void)("nvim_tabpage_del_var", tabpage , name);
223 
224     }
225 
226     void tabpageDelVarAsync(Tabpage tabpage, string name) {
227 
228         client.callAsync!(void)("nvim_tabpage_del_var", tabpage , name);
229 
230     }
231 
232     Window tabpageGetWin(Tabpage tabpage) {
233 
234         return client.call!(ExtValue)("nvim_tabpage_get_win", tabpage);
235 
236     }
237 
238     int tabpageGetNumber(Tabpage tabpage) {
239 
240         return client.call!(int)("nvim_tabpage_get_number", tabpage);
241 
242     }
243 
244     bool tabpageIsValid(Tabpage tabpage) {
245 
246         return client.call!(bool)("nvim_tabpage_is_valid", tabpage);
247 
248     }
249 
250     void uiAttach(int width, int height, bool enable_rgb) {
251 
252         client.call!(void)("ui_attach", width , height , enable_rgb);
253 
254     }
255 
256     void uiAttachAsync(int width, int height, bool enable_rgb) {
257 
258         client.callAsync!(void)("ui_attach", width , height , enable_rgb);
259 
260     }
261 
262     void uiDetach() {
263 
264         client.call!(void)("nvim_ui_detach");
265 
266     }
267 
268     void uiDetachAsync() {
269 
270         client.callAsync!(void)("nvim_ui_detach");
271 
272     }
273 
274     void uiTryResize(int width, int height) {
275 
276         client.call!(void)("nvim_ui_try_resize", width , height);
277 
278     }
279 
280     void uiTryResizeAsync(int width, int height) {
281 
282         client.callAsync!(void)("nvim_ui_try_resize", width , height);
283 
284     }
285 
286     void command(string command) {
287 
288         client.call!(void)("nvim_command", command);
289 
290     }
291 
292     void commandAsync(string command) {
293 
294         client.callAsync!(void)("nvim_command", command);
295 
296     }
297 
298     void feedkeys(string keys, string mode, bool escape_csi) {
299 
300         client.call!(void)("nvim_feedkeys", keys , mode , escape_csi);
301 
302     }
303 
304     void feedkeysAsync(string keys, string mode, bool escape_csi) {
305 
306         client.callAsync!(void)("nvim_feedkeys", keys , mode , escape_csi);
307 
308     }
309 
310     int input(string keys) {
311 
312         return client.call!(int)("nvim_input", keys);
313 
314     }
315 
316     string replaceTermcodes(string str, bool from_part, bool do_lt, bool special) {
317 
318         return client.call!(string)("nvim_replace_termcodes", str , from_part , do_lt , special);
319 
320     }
321 
322     string commandOutput(string command) {
323 
324         return client.call!(string)("nvim_command_output", command);
325 
326     }
327 
328     int strwidth(string text) {
329 
330         return client.call!(int)("nvim_strwidth", text);
331 
332     }
333 
334     string[] listRuntimePaths() {
335 
336         return client.call!(string[])("nvim_list_runtime_paths");
337 
338     }
339 
340     void setCurrentDir(string dir) {
341 
342         client.call!(void)("nvim_set_current_dir", dir);
343 
344     }
345 
346     void setCurrentDirAsync(string dir) {
347 
348         client.callAsync!(void)("nvim_set_current_dir", dir);
349 
350     }
351 
352     string getCurrentLine() {
353 
354         return client.call!(string)("nvim_get_current_line");
355 
356     }
357 
358     void setCurrentLine(string line) {
359 
360         client.call!(void)("nvim_set_current_line", line);
361 
362     }
363 
364     void setCurrentLineAsync(string line) {
365 
366         client.callAsync!(void)("nvim_set_current_line", line);
367 
368     }
369 
370     void delCurrentLine() {
371 
372         client.call!(void)("nvim_del_current_line");
373 
374     }
375 
376     void delCurrentLineAsync() {
377 
378         client.callAsync!(void)("nvim_del_current_line");
379 
380     }
381 
382     void delVar(string name) {
383 
384         client.call!(void)("nvim_del_var", name);
385 
386     }
387 
388     void delVarAsync(string name) {
389 
390         client.callAsync!(void)("nvim_del_var", name);
391 
392     }
393 
394     void outWrite(string str) {
395 
396         client.call!(void)("nvim_out_write", str);
397 
398     }
399 
400     void outWriteAsync(string str) {
401 
402         client.callAsync!(void)("nvim_out_write", str);
403 
404     }
405 
406     void errWrite(string str) {
407 
408         client.call!(void)("nvim_err_write", str);
409 
410     }
411 
412     void errWriteAsync(string str) {
413 
414         client.callAsync!(void)("nvim_err_write", str);
415 
416     }
417 
418     void errWriteln(string str) {
419 
420         client.call!(void)("nvim_err_writeln", str);
421 
422     }
423 
424     void errWritelnAsync(string str) {
425 
426         client.callAsync!(void)("nvim_err_writeln", str);
427 
428     }
429 
430     Buffer[] listBufs() {
431 
432         return client.call!(ExtValue[])("nvim_list_bufs");
433 
434     }
435 
436     Buffer getCurrentBuf() {
437 
438         return client.call!(ExtValue)("nvim_get_current_buf");
439 
440     }
441 
442     void setCurrentBuf(Buffer buffer) {
443 
444         client.call!(void)("nvim_set_current_buf", buffer);
445 
446     }
447 
448     void setCurrentBufAsync(Buffer buffer) {
449 
450         client.callAsync!(void)("nvim_set_current_buf", buffer);
451 
452     }
453 
454     Window[] listWins() {
455 
456         return client.call!(ExtValue[])("nvim_list_wins");
457 
458     }
459 
460     Window getCurrentWin() {
461 
462         return client.call!(ExtValue)("nvim_get_current_win");
463 
464     }
465 
466     void setCurrentWin(Window window) {
467 
468         client.call!(void)("nvim_set_current_win", window);
469 
470     }
471 
472     void setCurrentWinAsync(Window window) {
473 
474         client.callAsync!(void)("nvim_set_current_win", window);
475 
476     }
477 
478     Tabpage[] listTabpages() {
479 
480         return client.call!(ExtValue[])("nvim_list_tabpages");
481 
482     }
483 
484     Tabpage getCurrentTabpage() {
485 
486         return client.call!(ExtValue)("nvim_get_current_tabpage");
487 
488     }
489 
490     void setCurrentTabpage(Tabpage tabpage) {
491 
492         client.call!(void)("nvim_set_current_tabpage", tabpage);
493 
494     }
495 
496     void setCurrentTabpageAsync(Tabpage tabpage) {
497 
498         client.callAsync!(void)("nvim_set_current_tabpage", tabpage);
499 
500     }
501 
502     void subscribe(string event) {
503 
504         client.call!(void)("nvim_subscribe", event);
505 
506     }
507 
508     void subscribeAsync(string event) {
509 
510         client.callAsync!(void)("nvim_subscribe", event);
511 
512     }
513 
514     void unsubscribe(string event) {
515 
516         client.call!(void)("nvim_unsubscribe", event);
517 
518     }
519 
520     void unsubscribeAsync(string event) {
521 
522         client.callAsync!(void)("nvim_unsubscribe", event);
523 
524     }
525 
526     int getColorByName(string name) {
527 
528         return client.call!(int)("nvim_get_color_by_name", name);
529 
530     }
531 
532     Buffer winGetBuf(Window window) {
533 
534         return client.call!(ExtValue)("nvim_win_get_buf", window);
535 
536     }
537 
538     int[2] winGetCursor(Window window) {
539 
540         return client.call!(int[2])("nvim_win_get_cursor", window);
541 
542     }
543 
544     void winSetCursor(Window window, int[2] pos) {
545 
546         client.call!(void)("nvim_win_set_cursor", window , pos);
547 
548     }
549 
550     void winSetCursorAsync(Window window, int[2] pos) {
551 
552         client.callAsync!(void)("nvim_win_set_cursor", window , pos);
553 
554     }
555 
556     int winGetHeight(Window window) {
557 
558         return client.call!(int)("nvim_win_get_height", window);
559 
560     }
561 
562     void winSetHeight(Window window, int height) {
563 
564         client.call!(void)("nvim_win_set_height", window , height);
565 
566     }
567 
568     void winSetHeightAsync(Window window, int height) {
569 
570         client.callAsync!(void)("nvim_win_set_height", window , height);
571 
572     }
573 
574     int winGetWidth(Window window) {
575 
576         return client.call!(int)("nvim_win_get_width", window);
577 
578     }
579 
580     void winSetWidth(Window window, int width) {
581 
582         client.call!(void)("nvim_win_set_width", window , width);
583 
584     }
585 
586     void winSetWidthAsync(Window window, int width) {
587 
588         client.callAsync!(void)("nvim_win_set_width", window , width);
589 
590     }
591 
592     void winDelVar(Window window, string name) {
593 
594         client.call!(void)("nvim_win_del_var", window , name);
595 
596     }
597 
598     void winDelVarAsync(Window window, string name) {
599 
600         client.callAsync!(void)("nvim_win_del_var", window , name);
601 
602     }
603 
604     int[2] winGetPosition(Window window) {
605 
606         return client.call!(int[2])("nvim_win_get_position", window);
607 
608     }
609 
610     Tabpage winGetTabpage(Window window) {
611 
612         return client.call!(ExtValue)("nvim_win_get_tabpage", window);
613 
614     }
615 
616     int winGetNumber(Window window) {
617 
618         return client.call!(int)("nvim_win_get_number", window);
619 
620     }
621 
622     bool winIsValid(Window window) {
623 
624         return client.call!(bool)("nvim_win_is_valid", window);
625 
626     }
627 
628     int bufferLineCount(Buffer buffer) {
629 
630         return client.call!(int)("buffer_line_count", buffer);
631 
632     }
633 
634     string[] bufferGetLines(Buffer buffer, int start, int end, bool strict_indexing) {
635 
636         return client.call!(string[])("buffer_get_lines", buffer , start , end , strict_indexing);
637 
638     }
639 
640     void bufferSetLines(Buffer buffer, int start, int end, bool strict_indexing, string[] replacement) {
641 
642         client.call!(void)("buffer_set_lines", buffer , start , end , strict_indexing , replacement);
643 
644     }
645 
646     void bufferSetLinesAsync(Buffer buffer, int start, int end, bool strict_indexing, string[] replacement) {
647 
648         client.callAsync!(void)("buffer_set_lines", buffer , start , end , strict_indexing , replacement);
649 
650     }
651 
652     int bufferGetNumber(Buffer buffer) {
653 
654         return client.call!(int)("buffer_get_number", buffer);
655 
656     }
657 
658     string bufferGetName(Buffer buffer) {
659 
660         return client.call!(string)("buffer_get_name", buffer);
661 
662     }
663 
664     void bufferSetName(Buffer buffer, string name) {
665 
666         client.call!(void)("buffer_set_name", buffer , name);
667 
668     }
669 
670     void bufferSetNameAsync(Buffer buffer, string name) {
671 
672         client.callAsync!(void)("buffer_set_name", buffer , name);
673 
674     }
675 
676     bool bufferIsValid(Buffer buffer) {
677 
678         return client.call!(bool)("buffer_is_valid", buffer);
679 
680     }
681 
682     int[2] bufferGetMark(Buffer buffer, string name) {
683 
684         return client.call!(int[2])("buffer_get_mark", buffer , name);
685 
686     }
687 
688     int bufferAddHighlight(Buffer buffer, int src_id, string hl_group, int line, int col_start, int col_end) {
689 
690         return client.call!(int)("buffer_add_highlight", buffer , src_id , hl_group , line , col_start , col_end);
691 
692     }
693 
694     void bufferClearHighlight(Buffer buffer, int src_id, int line_start, int line_end) {
695 
696         client.call!(void)("buffer_clear_highlight", buffer , src_id , line_start , line_end);
697 
698     }
699 
700     void bufferClearHighlightAsync(Buffer buffer, int src_id, int line_start, int line_end) {
701 
702         client.callAsync!(void)("buffer_clear_highlight", buffer , src_id , line_start , line_end);
703 
704     }
705 
706     Window[] tabpageGetWindows(Tabpage tabpage) {
707 
708         return client.call!(ExtValue[])("tabpage_get_windows", tabpage);
709 
710     }
711 
712     Window tabpageGetWindow(Tabpage tabpage) {
713 
714         return client.call!(ExtValue)("tabpage_get_window", tabpage);
715 
716     }
717 
718     bool tabpageIsValid(Tabpage tabpage) {
719 
720         return client.call!(bool)("tabpage_is_valid", tabpage);
721 
722     }
723 
724     void uiDetach() {
725 
726         client.call!(void)("ui_detach");
727 
728     }
729 
730     void uiDetachAsync() {
731 
732         client.callAsync!(void)("ui_detach");
733 
734     }
735 
736     void vimCommand(string command) {
737 
738         client.call!(void)("vim_command", command);
739 
740     }
741 
742     void vimCommandAsync(string command) {
743 
744         client.callAsync!(void)("vim_command", command);
745 
746     }
747 
748     void vimFeedkeys(string keys, string mode, bool escape_csi) {
749 
750         client.call!(void)("vim_feedkeys", keys , mode , escape_csi);
751 
752     }
753 
754     void vimFeedkeysAsync(string keys, string mode, bool escape_csi) {
755 
756         client.callAsync!(void)("vim_feedkeys", keys , mode , escape_csi);
757 
758     }
759 
760     int vimInput(string keys) {
761 
762         return client.call!(int)("vim_input", keys);
763 
764     }
765 
766     string vimReplaceTermcodes(string str, bool from_part, bool do_lt, bool special) {
767 
768         return client.call!(string)("vim_replace_termcodes", str , from_part , do_lt , special);
769 
770     }
771 
772     string vimCommandOutput(string command) {
773 
774         return client.call!(string)("vim_command_output", command);
775 
776     }
777 
778     int vimStrwidth(string text) {
779 
780         return client.call!(int)("vim_strwidth", text);
781 
782     }
783 
784     string[] vimListRuntimePaths() {
785 
786         return client.call!(string[])("vim_list_runtime_paths");
787 
788     }
789 
790     void vimChangeDirectory(string dir) {
791 
792         client.call!(void)("vim_change_directory", dir);
793 
794     }
795 
796     void vimChangeDirectoryAsync(string dir) {
797 
798         client.callAsync!(void)("vim_change_directory", dir);
799 
800     }
801 
802     string vimGetCurrentLine() {
803 
804         return client.call!(string)("vim_get_current_line");
805 
806     }
807 
808     void vimSetCurrentLine(string line) {
809 
810         client.call!(void)("vim_set_current_line", line);
811 
812     }
813 
814     void vimSetCurrentLineAsync(string line) {
815 
816         client.callAsync!(void)("vim_set_current_line", line);
817 
818     }
819 
820     void vimDelCurrentLine() {
821 
822         client.call!(void)("vim_del_current_line");
823 
824     }
825 
826     void vimDelCurrentLineAsync() {
827 
828         client.callAsync!(void)("vim_del_current_line");
829 
830     }
831 
832     void vimOutWrite(string str) {
833 
834         client.call!(void)("vim_out_write", str);
835 
836     }
837 
838     void vimOutWriteAsync(string str) {
839 
840         client.callAsync!(void)("vim_out_write", str);
841 
842     }
843 
844     void vimErrWrite(string str) {
845 
846         client.call!(void)("vim_err_write", str);
847 
848     }
849 
850     void vimErrWriteAsync(string str) {
851 
852         client.callAsync!(void)("vim_err_write", str);
853 
854     }
855 
856     void vimReportError(string str) {
857 
858         client.call!(void)("vim_report_error", str);
859 
860     }
861 
862     void vimReportErrorAsync(string str) {
863 
864         client.callAsync!(void)("vim_report_error", str);
865 
866     }
867 
868     Buffer[] vimGetBuffers() {
869 
870         return client.call!(ExtValue[])("vim_get_buffers");
871 
872     }
873 
874     Buffer vimGetCurrentBuffer() {
875 
876         return client.call!(ExtValue)("vim_get_current_buffer");
877 
878     }
879 
880     void vimSetCurrentBuffer(Buffer buffer) {
881 
882         client.call!(void)("vim_set_current_buffer", buffer);
883 
884     }
885 
886     void vimSetCurrentBufferAsync(Buffer buffer) {
887 
888         client.callAsync!(void)("vim_set_current_buffer", buffer);
889 
890     }
891 
892     Window[] vimGetWindows() {
893 
894         return client.call!(ExtValue[])("vim_get_windows");
895 
896     }
897 
898     Window vimGetCurrentWindow() {
899 
900         return client.call!(ExtValue)("vim_get_current_window");
901 
902     }
903 
904     void vimSetCurrentWindow(Window window) {
905 
906         client.call!(void)("vim_set_current_window", window);
907 
908     }
909 
910     void vimSetCurrentWindowAsync(Window window) {
911 
912         client.callAsync!(void)("vim_set_current_window", window);
913 
914     }
915 
916     Tabpage[] vimGetTabpages() {
917 
918         return client.call!(ExtValue[])("vim_get_tabpages");
919 
920     }
921 
922     Tabpage vimGetCurrentTabpage() {
923 
924         return client.call!(ExtValue)("vim_get_current_tabpage");
925 
926     }
927 
928     void vimSetCurrentTabpage(Tabpage tabpage) {
929 
930         client.call!(void)("vim_set_current_tabpage", tabpage);
931 
932     }
933 
934     void vimSetCurrentTabpageAsync(Tabpage tabpage) {
935 
936         client.callAsync!(void)("vim_set_current_tabpage", tabpage);
937 
938     }
939 
940     void vimSubscribe(string event) {
941 
942         client.call!(void)("vim_subscribe", event);
943 
944     }
945 
946     void vimSubscribeAsync(string event) {
947 
948         client.callAsync!(void)("vim_subscribe", event);
949 
950     }
951 
952     void vimUnsubscribe(string event) {
953 
954         client.call!(void)("vim_unsubscribe", event);
955 
956     }
957 
958     void vimUnsubscribeAsync(string event) {
959 
960         client.callAsync!(void)("vim_unsubscribe", event);
961 
962     }
963 
964     int vimNameToColor(string name) {
965 
966         return client.call!(int)("vim_name_to_color", name);
967 
968     }
969 
970     Buffer windowGetBuffer(Window window) {
971 
972         return client.call!(ExtValue)("window_get_buffer", window);
973 
974     }
975 
976     int[2] windowGetCursor(Window window) {
977 
978         return client.call!(int[2])("window_get_cursor", window);
979 
980     }
981 
982     void windowSetCursor(Window window, int[2] pos) {
983 
984         client.call!(void)("window_set_cursor", window , pos);
985 
986     }
987 
988     void windowSetCursorAsync(Window window, int[2] pos) {
989 
990         client.callAsync!(void)("window_set_cursor", window , pos);
991 
992     }
993 
994     int windowGetHeight(Window window) {
995 
996         return client.call!(int)("window_get_height", window);
997 
998     }
999 
1000     void windowSetHeight(Window window, int height) {
1001 
1002         client.call!(void)("window_set_height", window , height);
1003 
1004     }
1005 
1006     void windowSetHeightAsync(Window window, int height) {
1007 
1008         client.callAsync!(void)("window_set_height", window , height);
1009 
1010     }
1011 
1012     int windowGetWidth(Window window) {
1013 
1014         return client.call!(int)("window_get_width", window);
1015 
1016     }
1017 
1018     void windowSetWidth(Window window, int width) {
1019 
1020         client.call!(void)("window_set_width", window , width);
1021 
1022     }
1023 
1024     void windowSetWidthAsync(Window window, int width) {
1025 
1026         client.callAsync!(void)("window_set_width", window , width);
1027 
1028     }
1029 
1030     int[2] windowGetPosition(Window window) {
1031 
1032         return client.call!(int[2])("window_get_position", window);
1033 
1034     }
1035 
1036     Tabpage windowGetTabpage(Window window) {
1037 
1038         return client.call!(ExtValue)("window_get_tabpage", window);
1039 
1040     }
1041 
1042     bool windowIsValid(Window window) {
1043 
1044         return client.call!(bool)("window_is_valid", window);
1045 
1046     }
1047 
1048 }