diff options
Diffstat (limited to 'src/nvim/api/extmark.c')
| -rw-r--r-- | src/nvim/api/extmark.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/nvim/api/extmark.c b/src/nvim/api/extmark.c index 87232a8a93..299413e510 100644 --- a/src/nvim/api/extmark.c +++ b/src/nvim/api/extmark.c @@ -33,12 +33,10 @@ void api_extmark_free_all_mem(void) { String name; - handle_T id; - map_foreach(&namespace_ids, name, id, { - (void)id; + map_foreach_key(&namespace_ids, name, { xfree(name.data); }) - map_destroy(String, handle_T)(&namespace_ids); + map_destroy(String, &namespace_ids); } /// Creates a new namespace or gets an existing one. \*namespace\* @@ -77,7 +75,7 @@ Dictionary nvim_get_namespaces(void) String name; handle_T id; - map_foreach(&namespace_ids, name, id, { + map_foreach(handle_T, &namespace_ids, name, id, { PUT(retval, name.data, INTEGER_OBJ(id)); }) @@ -88,7 +86,7 @@ const char *describe_ns(NS ns_id) { String name; handle_T id; - map_foreach(&namespace_ids, name, id, { + map_foreach(handle_T, &namespace_ids, name, id, { if ((NS)id == ns_id && name.size) { return name.data; } @@ -108,7 +106,7 @@ bool ns_initialized(uint32_t ns) static Object hl_group_name(int hl_id, bool hl_name) { if (hl_name) { - return STRING_OBJ(cstr_to_string(syn_id2name(hl_id))); + return CSTR_TO_OBJ(syn_id2name(hl_id)); } else { return INTEGER_OBJ(hl_id); } @@ -142,7 +140,7 @@ static Array extmark_to_array(const ExtmarkInfo *extmark, bool id, bool add_dict PUT(dict, "hl_eol", BOOLEAN_OBJ(decor->hl_eol)); } if (decor->hl_mode) { - PUT(dict, "hl_mode", STRING_OBJ(cstr_to_string(hl_mode_str[decor->hl_mode]))); + PUT(dict, "hl_mode", CSTR_TO_OBJ(hl_mode_str[decor->hl_mode])); } if (kv_size(decor->virt_text)) { @@ -150,7 +148,7 @@ static Array extmark_to_array(const ExtmarkInfo *extmark, bool id, bool add_dict for (size_t i = 0; i < decor->virt_text.size; i++) { Array chunk = ARRAY_DICT_INIT; VirtTextChunk *vtc = &decor->virt_text.items[i]; - ADD(chunk, STRING_OBJ(cstr_to_string(vtc->text))); + ADD(chunk, CSTR_TO_OBJ(vtc->text)); if (vtc->hl_id > 0) { ADD(chunk, hl_group_name(vtc->hl_id, hl_name)); } @@ -162,7 +160,7 @@ static Array extmark_to_array(const ExtmarkInfo *extmark, bool id, bool add_dict PUT(dict, "virt_text_win_col", INTEGER_OBJ(decor->col)); } PUT(dict, "virt_text_pos", - STRING_OBJ(cstr_to_string(virt_text_pos_str[decor->virt_text_pos]))); + CSTR_TO_OBJ(virt_text_pos_str[decor->virt_text_pos])); } if (decor->ui_watched) { @@ -179,7 +177,7 @@ static Array extmark_to_array(const ExtmarkInfo *extmark, bool id, bool add_dict for (size_t j = 0; j < vt->size; j++) { Array chunk = ARRAY_DICT_INIT; VirtTextChunk *vtc = &vt->items[j]; - ADD(chunk, STRING_OBJ(cstr_to_string(vtc->text))); + ADD(chunk, CSTR_TO_OBJ(vtc->text)); if (vtc->hl_id > 0) { ADD(chunk, hl_group_name(vtc->hl_id, hl_name)); } @@ -193,7 +191,7 @@ static Array extmark_to_array(const ExtmarkInfo *extmark, bool id, bool add_dict } if (decor->sign_text) { - PUT(dict, "sign_text", STRING_OBJ(cstr_to_string(decor->sign_text))); + PUT(dict, "sign_text", CSTR_TO_OBJ(decor->sign_text)); } // uncrustify:off @@ -479,6 +477,8 @@ Array nvim_buf_get_extmarks(Buffer buffer, Integer ns_id, Object start, Object e /// - "overlay": display over the specified column, without /// shifting the underlying text. /// - "right_align": display right aligned in the window. +/// - "inline": display at the specified column, and +/// shift the buffer text to the right as needed /// - virt_text_win_col : position the virtual text at a fixed /// window column (starting from the first /// text column) @@ -697,6 +697,8 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer decor.virt_text_pos = kVTOverlay; } else if (strequal("right_align", str.data)) { decor.virt_text_pos = kVTRightAlign; + } else if (strequal("inline", str.data)) { + decor.virt_text_pos = kVTInline; } else { VALIDATE_S(false, "virt_text_pos", "", { goto error; |
