API: Implement tabpage_{get,set}_var

This commit is contained in:
Thiago de Arruda 2014-05-11 11:02:29 -03:00
parent bfe3b6712e
commit e026be46af
4 changed files with 41 additions and 6 deletions

View File

@ -290,6 +290,17 @@ win_T * find_window(Window window, Error *err)
return NULL;
}
tabpage_T * find_tab(Tabpage tabpage, Error *err)
{
tabpage_T *rv = find_tabpage(tabpage);
if (!rv) {
set_api_error("Invalid tabpage id", err);
}
return rv;
}
static bool object_to_vim(Object obj, typval_T *tv, Error *err)
{
tv->v_type = VAR_UNKNOWN;

View File

@ -80,5 +80,12 @@ buf_T *find_buffer(Buffer buffer, Error *err);
/// @return the window pointer
win_T * find_window(Window window, Error *err);
/// Finds the pointer for a tabpage number
///
/// @param tabpage the tabpage number
/// @param[out] err Details of an error that may have occurred
/// @return the tabpage pointer
tabpage_T * find_tab(Tabpage tabpage, Error *err);
#endif // NEOVIM_API_HELPERS_H

View File

@ -4,20 +4,36 @@
#include "api/tabpage.h"
#include "api/defs.h"
#include "api/helpers.h"
int64_t tabpage_get_window_count(Tabpage tabpage, Error *err)
{
abort();
set_api_error("Not implemented", err);
return 0;
}
Object tabpage_get_var(Tabpage tabpage, String name, Error *err)
{
abort();
Object rv;
tabpage_T *tab = find_tab(tabpage, err);
if (!tab) {
return rv;
}
return dict_get_value(tab->tp_vars, name, false, err);
}
void tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err)
{
abort();
Object rv;
tabpage_T *tab = find_tab(tabpage, err);
if (!tab) {
return rv;
}
return dict_set_value(tab->tp_vars, name, value, err);
}
Window tabpage_get_buffer(Tabpage tabpage, Error *err)

View File

@ -23,11 +23,12 @@ Object tabpage_get_var(Tabpage tabpage, String name, Error *err);
/// Sets a tabpage variable
///
/// @param tabpage andle
/// @param tabpage handle
/// @param name The variable name
/// @param value The variable value
/// @param[out] err Details of an error that may have occurred
void tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err);
/// @return The tab page handle
Object tabpage_set_var(Tabpage tabpage, String name, Object value, Error *err);
/// Gets the current window in a tab page
///