aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/buffer.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-05-11 20:59:53 +0200
committerJustin M. Keyes <justinkz@gmail.com>2018-05-12 07:29:21 +0200
commitcb6672853a0df3dbe5202621d818ef1c2da7432c (patch)
treec429d2f3474b7b6016ace1dc754ceca115788e2d /src/nvim/api/buffer.c
parent738bffea2cbb810ad1d3a3aa5bfeb88392260a8a (diff)
downloadrneovim-cb6672853a0df3dbe5202621d818ef1c2da7432c.tar.gz
rneovim-cb6672853a0df3dbe5202621d818ef1c2da7432c.tar.bz2
rneovim-cb6672853a0df3dbe5202621d818ef1c2da7432c.zip
API: nvim_get_commands(): builtin is irrelevant for buffer-local
builtin commands are never buffer-local, so we can return empty for that case.
Diffstat (limited to 'src/nvim/api/buffer.c')
-rw-r--r--src/nvim/api/buffer.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c
index 19f92f002d..eda7fcd74c 100644
--- a/src/nvim/api/buffer.c
+++ b/src/nvim/api/buffer.c
@@ -481,8 +481,7 @@ ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Error *err)
/// Gets a list of buffer-local |user-commands|.
///
/// @param buffer Buffer handle.
-/// @param opts Optional parameters. Currently only supports
-/// {"builtin":false}
+/// @param opts Optional parameters. Currently not used.
/// @param[out] err Error details, if any.
///
/// @returns Array of dictionaries describing commands.
@@ -490,27 +489,31 @@ ArrayOf(Dictionary) nvim_buf_get_commands(Buffer buffer, Dictionary opts,
Error *err)
FUNC_API_SINCE(4)
{
+ bool global = (buffer == -1);
+ bool builtin = false;
+
for (size_t i = 0; i < opts.size; i++) {
String k = opts.items[i].key;
Object v = opts.items[i].value;
if (!strequal("builtin", k.data)) {
- api_set_error(err, kErrorTypeValidation, "unexpected key: %s",
- k.data);
+ api_set_error(err, kErrorTypeValidation, "unexpected key: %s", k.data);
return (Array)ARRAY_DICT_INIT;
}
- if (v.type != kObjectTypeBoolean || v.data.boolean != false) {
- api_set_error(err, kErrorTypeValidation,
- "builtin commands not supported yet");
- return (Array)ARRAY_DICT_INIT;
+ if (strequal("builtin", k.data)) {
+ builtin = v.data.boolean;
}
}
- if (buffer == -1) {
+ if (global) {
+ if (builtin) {
+ api_set_error(err, kErrorTypeValidation, "builtin=true not implemented");
+ return (Array)ARRAY_DICT_INIT;
+ }
return commands_array(NULL);
}
buf_T *buf = find_buffer_by_handle(buffer, err);
- if (!buf) {
+ if (builtin || !buf) {
return (Array)ARRAY_DICT_INIT;
}
return commands_array(buf);