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 }