diff options
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r-- | src/nvim/ui.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c index f4d3cd987d..c70a02d960 100644 --- a/src/nvim/ui.c +++ b/src/nvim/ui.c @@ -526,3 +526,19 @@ bool ui_is_external(UIExtension widget) { return ui_ext[widget]; } + +Array ui_array(void) +{ + Array all_uis = ARRAY_DICT_INIT; + for (size_t i = 0; i < ui_count; i++) { + Dictionary dic = ARRAY_DICT_INIT; + PUT(dic, "width", INTEGER_OBJ(uis[i]->width)); + PUT(dic, "height", INTEGER_OBJ(uis[i]->height)); + PUT(dic, "rgb", BOOLEAN_OBJ(uis[i]->rgb)); + for (UIExtension j = 0; j < kUIExtCount; j++) { + PUT(dic, ui_ext_names[j], BOOLEAN_OBJ(uis[i]->ui_ext[j])); + } + ADD(all_uis, DICTIONARY_OBJ(dic)); + } + return all_uis; +} |