aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/api/vim.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2017-09-02 14:21:06 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2019-02-09 11:48:45 +0100
commit891ed14f13c3ea99d3fb985371c69f769ee7ff57 (patch)
tree6e48660879a7f88178fd082d6c555fa64bec6102 /src/nvim/api/vim.c
parentf6faeea41c70015f6d9b63fecaf80d106cd2636d (diff)
downloadrneovim-891ed14f13c3ea99d3fb985371c69f769ee7ff57.tar.gz
rneovim-891ed14f13c3ea99d3fb985371c69f769ee7ff57.tar.bz2
rneovim-891ed14f13c3ea99d3fb985371c69f769ee7ff57.zip
api: add nvim_create_buf to create a new empty buffer.
Loading existing files into a buffer is non-trivial and requires a window. Creating an unnamed emtpy buffer is trivial and safe though, thus worth a special case. Change nvim_buf_set_option to use aucmd_prepbuf. This is necessary to allow some options to be set on a not yet displayed buffer, such as 'buftype' option. vim-patch:7.4.1858: Add BLN_NEW to enforce buflist_new creating new buffer
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r--src/nvim/api/vim.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c
index 5b59ff39f4..86e243c4f0 100644
--- a/src/nvim/api/vim.c
+++ b/src/nvim/api/vim.c
@@ -955,6 +955,25 @@ void nvim_set_current_win(Window window, Error *err)
}
}
+/// Create new empty buffer
+///
+/// @param listed whether the buffer should be listed
+/// @param[out] err Error details, if any
+/// @return the buffer handle or 0 when error
+Buffer nvim_create_buf(Boolean listed, Error *err)
+ FUNC_API_SINCE(6)
+{
+ try_start();
+ Buffer buffer = buflist_add(NULL,
+ BLN_NOOPT | BLN_NEW | (listed ? BLN_LISTED : 0));
+ if (!try_end(err) && buffer == 0) {
+ api_set_error(err,
+ kErrorTypeException,
+ "Failed to create buffer");
+ }
+ return buffer;
+}
+
/// Gets the current list of tabpage handles.
///
/// @return List of tabpage handles