mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 05:05:00 -07:00
fix(api): wrong nvim_buf_set_extmark error for invalid hl_mode
This commit is contained in:
parent
0534ad8ca5
commit
a9cd8467cb
@ -701,7 +701,7 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer
|
|||||||
} else if (strequal("inline", str.data)) {
|
} else if (strequal("inline", str.data)) {
|
||||||
decor.virt_text_pos = kVTInline;
|
decor.virt_text_pos = kVTInline;
|
||||||
} else {
|
} else {
|
||||||
VALIDATE_S(false, "virt_text_pos", "", {
|
VALIDATE_S(false, "virt_text_pos", str.data, {
|
||||||
goto error;
|
goto error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -719,7 +719,11 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer
|
|||||||
OPTION_TO_BOOL(decor.virt_text_hide, virt_text_hide, false);
|
OPTION_TO_BOOL(decor.virt_text_hide, virt_text_hide, false);
|
||||||
OPTION_TO_BOOL(decor.hl_eol, hl_eol, false);
|
OPTION_TO_BOOL(decor.hl_eol, hl_eol, false);
|
||||||
|
|
||||||
if (opts->hl_mode.type == kObjectTypeString) {
|
if (HAS_KEY(opts->hl_mode)) {
|
||||||
|
VALIDATE_T("hl_mode", kObjectTypeString, opts->hl_mode.type, {
|
||||||
|
goto error;
|
||||||
|
});
|
||||||
|
|
||||||
String str = opts->hl_mode.data.string;
|
String str = opts->hl_mode.data.string;
|
||||||
if (strequal("replace", str.data)) {
|
if (strequal("replace", str.data)) {
|
||||||
decor.hl_mode = kHlModeReplace;
|
decor.hl_mode = kHlModeReplace;
|
||||||
@ -728,14 +732,10 @@ Integer nvim_buf_set_extmark(Buffer buffer, Integer ns_id, Integer line, Integer
|
|||||||
} else if (strequal("blend", str.data)) {
|
} else if (strequal("blend", str.data)) {
|
||||||
decor.hl_mode = kHlModeBlend;
|
decor.hl_mode = kHlModeBlend;
|
||||||
} else {
|
} else {
|
||||||
VALIDATE_S(false, "virt_text_pos", "", {
|
VALIDATE_S(false, "hl_mode", str.data, {
|
||||||
goto error;
|
goto error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (HAS_KEY(opts->hl_mode)) {
|
|
||||||
VALIDATE_T("hl_mode", kObjectTypeString, opts->hl_mode.type, {
|
|
||||||
goto error;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool virt_lines_leftcol = false;
|
bool virt_lines_leftcol = false;
|
||||||
|
@ -105,6 +105,10 @@ describe('API/extmarks', function()
|
|||||||
it('validation', function()
|
it('validation', function()
|
||||||
eq("Invalid 'end_col': expected Integer, got Array", pcall_err(set_extmark, ns, marks[2], 0, 0, { end_col = {}, end_row = 1 }))
|
eq("Invalid 'end_col': expected Integer, got Array", pcall_err(set_extmark, ns, marks[2], 0, 0, { end_col = {}, end_row = 1 }))
|
||||||
eq("Invalid 'end_row': expected Integer, got Array", pcall_err(set_extmark, ns, marks[2], 0, 0, { end_col = 1, end_row = {} }))
|
eq("Invalid 'end_row': expected Integer, got Array", pcall_err(set_extmark, ns, marks[2], 0, 0, { end_col = 1, end_row = {} }))
|
||||||
|
eq("Invalid 'virt_text_pos': expected String, got Integer", pcall_err(set_extmark, ns, marks[2], 0, 0, { virt_text_pos = 0 }))
|
||||||
|
eq("Invalid 'virt_text_pos': 'foo'", pcall_err(set_extmark, ns, marks[2], 0, 0, { virt_text_pos = 'foo' }))
|
||||||
|
eq("Invalid 'hl_mode': expected String, got Integer", pcall_err(set_extmark, ns, marks[2], 0, 0, { hl_mode = 0 }))
|
||||||
|
eq("Invalid 'hl_mode': 'foo'", pcall_err(set_extmark, ns, marks[2], 0, 0, { hl_mode = 'foo' }))
|
||||||
eq("Invalid 'id': expected positive Integer", pcall_err(set_extmark, ns, {}, 0, 0, { end_col = 1, end_row = 1 }))
|
eq("Invalid 'id': expected positive Integer", pcall_err(set_extmark, ns, {}, 0, 0, { end_col = 1, end_row = 1 }))
|
||||||
eq("Invalid mark position: expected 2 Integer items", pcall_err(get_extmarks, ns, {}, {-1, -1}))
|
eq("Invalid mark position: expected 2 Integer items", pcall_err(get_extmarks, ns, {}, {-1, -1}))
|
||||||
eq("Invalid mark position: expected mark id Integer or 2-item Array", pcall_err(get_extmarks, ns, true, {-1, -1}))
|
eq("Invalid mark position: expected mark id Integer or 2-item Array", pcall_err(get_extmarks, ns, true, {-1, -1}))
|
||||||
|
Loading…
Reference in New Issue
Block a user