diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-05-11 07:50:00 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-05-11 13:50:00 +0200 |
commit | 738bffea2cbb810ad1d3a3aa5bfeb88392260a8a (patch) | |
tree | 1cf06c01744acf33df2c1db67398c897a5af962b /src | |
parent | 9fa7727ce047e8e2e13f9fbf60d5defe9cf45060 (diff) | |
download | rneovim-738bffea2cbb810ad1d3a3aa5bfeb88392260a8a.tar.gz rneovim-738bffea2cbb810ad1d3a3aa5bfeb88392260a8a.tar.bz2 rneovim-738bffea2cbb810ad1d3a3aa5bfeb88392260a8a.zip |
API: nvim_get_commands(): more attributes
Support more :command attributes:
-bang
-bar
-register
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/buffer.c | 9 | ||||
-rw-r--r-- | src/nvim/api/vim.c | 10 | ||||
-rw-r--r-- | src/nvim/ex_docmd.c | 14 |
3 files changed, 18 insertions, 15 deletions
diff --git a/src/nvim/api/buffer.c b/src/nvim/api/buffer.c index 878c8aad87..19f92f002d 100644 --- a/src/nvim/api/buffer.c +++ b/src/nvim/api/buffer.c @@ -459,14 +459,13 @@ Integer nvim_buf_get_changedtick(Buffer buffer, Error *err) return buf->b_changedtick; } -/// Gets a list of dictionaries describing buffer-local mappings. -/// The "buffer" key in the returned dictionary reflects the buffer -/// handle where the mapping is present. +/// Gets a list of buffer-local |mapping| definitions. /// /// @param mode Mode short-name ("n", "i", "v", ...) /// @param buffer Buffer handle /// @param[out] err Error details, if any -/// @returns Array of maparg()-like dictionaries describing mappings +/// @returns Array of maparg()-like dictionaries describing mappings. +/// The "buffer" key holds the associated buffer handle. ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Error *err) FUNC_API_SINCE(3) { @@ -479,7 +478,7 @@ ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Error *err) return keymap_array(mode, buf); } -/// Gets a list of maps describing buffer-local |user-commands|. +/// Gets a list of buffer-local |user-commands|. /// /// @param buffer Buffer handle. /// @param opts Optional parameters. Currently only supports diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 065b8d1ce2..305cc1a43c 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -948,18 +948,20 @@ Dictionary nvim_get_mode(void) return rv; } -/// Gets a list of dictionaries describing global (non-buffer) mappings. -/// The "buffer" key in the returned dictionary is always zero. +/// Gets a list of global (non-buffer-local) |mapping| definitions. /// /// @param mode Mode short-name ("n", "i", "v", ...) -/// @returns Array of maparg()-like dictionaries describing mappings +/// @returns Array of maparg()-like dictionaries describing mappings. +/// The "buffer" key is always zero. ArrayOf(Dictionary) nvim_get_keymap(String mode) FUNC_API_SINCE(3) { return keymap_array(mode, NULL); } -/// Gets a list of maps describing global |user-commands|. +/// Gets a list of global (non-buffer-local) Ex commands. +/// +/// Currently only |user-commands| are supported, not builtin Ex commands. /// /// @param opts Optional parameters. Currently only supports /// {"builtin":false} diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index 121b913bb7..e92dbc4cc8 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -9990,14 +9990,16 @@ ArrayOf(Dictionary) commands_array(buf_T *buf) PUT(d, "name", STRING_OBJ(cstr_to_string((char *)cmd->uc_name))); PUT(d, "definition", STRING_OBJ(cstr_to_string((char *)cmd->uc_rep))); PUT(d, "script_id", INTEGER_OBJ(cmd->uc_scriptID)); + PUT(d, "bang", BOOLEAN_OBJ(!!(cmd->uc_argt & BANG))); + PUT(d, "bar", BOOLEAN_OBJ(!!(cmd->uc_argt & TRLBAR))); + PUT(d, "register", BOOLEAN_OBJ(!!(cmd->uc_argt & REGSTR))); - // "nargs" key switch (cmd->uc_argt & (EXTRA|NOSPC|NEEDARG)) { - case 0: arg[0] = '0'; break; - case(EXTRA): arg[0] = '*'; break; - case(EXTRA|NOSPC): arg[0] = '?'; break; - case(EXTRA|NEEDARG): arg[0] = '+'; break; - case(EXTRA|NOSPC|NEEDARG): arg[0] = '1'; break; + case 0: arg[0] = '0'; break; + case(EXTRA): arg[0] = '*'; break; + case(EXTRA|NOSPC): arg[0] = '?'; break; + case(EXTRA|NEEDARG): arg[0] = '+'; break; + case(EXTRA|NOSPC|NEEDARG): arg[0] = '1'; break; } PUT(d, "nargs", STRING_OBJ(cstr_to_string(arg))); |