API: nvim_get_commands()

This commit is contained in:
Nimit Bhardwaj
2018-02-24 15:44:51 +05:30
committed by Justin M. Keyes
parent 273d2cd5d5
commit 25b6304840
6 changed files with 274 additions and 62 deletions

View File

@@ -24,6 +24,7 @@
#include "nvim/syntax.h"
#include "nvim/window.h"
#include "nvim/undo.h"
#include "nvim/ex_docmd.h"
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "api/buffer.c.generated.h"
@@ -478,6 +479,26 @@ ArrayOf(Dictionary) nvim_buf_get_keymap(Buffer buffer, String mode, Error *err)
return keymap_array(mode, buf);
}
/// Gets a list of dictionaries describing buffer-local commands.
/// The "buffer" key in the returned dictionary reflects the buffer
/// handle where the command is present.
///
/// @param buffer Buffer handle.
/// @param opts Optional parameters, currently always
/// @param[out] err Error details, if any.
///
/// @returns Array of dictionaries describing commands.
ArrayOf(Dictionary) nvim_buf_get_commands(Buffer buffer, Dictionary opts,
Error *err)
FUNC_API_SINCE(4)
{
buf_T *buf = find_buffer_by_handle(buffer, err);
if (!buf) {
return (Array)ARRAY_DICT_INIT;
}
return commands_array(buf);
}
/// Sets a buffer-scoped (b:) variable
///
/// @param buffer Buffer handle

View File

@@ -701,7 +701,7 @@ String cchar_to_string(char c)
String cstr_to_string(const char *str)
{
if (str == NULL) {
return (String) STRING_INIT;
return (String) STRING_INIT;
}
size_t len = strlen(str);
@@ -1149,7 +1149,7 @@ void api_set_error(Error *err, ErrorType errType, const char *format, ...)
///
/// @param mode The abbreviation for the mode
/// @param buf The buffer to get the mapping array. NULL for global
/// @returns An array of maparg() like dictionaries describing mappings
/// @returns Array of maparg()-like dictionaries describing mappings
ArrayOf(Dictionary) keymap_array(String mode, buf_T *buf)
{
Array mappings = ARRAY_DICT_INIT;

View File

@@ -959,6 +959,19 @@ ArrayOf(Dictionary) nvim_get_keymap(String mode)
return keymap_array(mode, NULL);
}
/// Gets a list of dictionaries describing global(non-buffer) commands.
///
/// @param opts Holds the API Metadata describing what type of commands
/// are needed.
/// @param[out] err Error details, if any.
///
/// @returns Array of dictionaries describing commands.
ArrayOf(Dictionary) nvim_get_commands(Dictionary opts, Error *err)
FUNC_API_SINCE(4)
{
return commands_array(NULL);
}
/// Returns a 2-tuple (Array), where item 0 is the current channel id and item
/// 1 is the |api-metadata| map (Dictionary).
///