mirror of
https://github.com/neovim/neovim.git
synced 2026-02-18 02:11:06 +10:00
refactor(api): api_buf_ensure_loaded
This commit is contained in:
@@ -48,6 +48,22 @@
|
||||
|
||||
#include "api/buffer.c.generated.h"
|
||||
|
||||
/// Ensures that a buffer is loaded.
|
||||
static buf_T *api_buf_ensure_loaded(Buffer buffer, Error *err)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (buf->b_ml.ml_mfp == NULL && !buf_ensure_loaded(buf)) {
|
||||
api_set_error(err, kErrorTypeException, "Failed to load buffer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/// @brief <pre>help
|
||||
/// For more information on buffers, see |buffers|.
|
||||
///
|
||||
@@ -288,22 +304,6 @@ ArrayOf(String) nvim_buf_get_lines(uint64_t channel_id,
|
||||
return rv;
|
||||
}
|
||||
|
||||
static buf_T *require_loaded_buffer(Buffer buffer, Error *err)
|
||||
{
|
||||
buf_T *buf = find_buffer_by_handle(buffer, err);
|
||||
if (!buf) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Load buffer if necessary
|
||||
if (buf->b_ml.ml_mfp == NULL && !buf_ensure_loaded(buf)) {
|
||||
api_set_error(err, kErrorTypeException, "Failed to load buffer");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
/// Sets (replaces) a line-range in the buffer.
|
||||
///
|
||||
/// Indexing is zero-based, end-exclusive. Negative indices are interpreted
|
||||
@@ -331,7 +331,7 @@ void nvim_buf_set_lines(uint64_t channel_id, Buffer buffer, Integer start, Integ
|
||||
FUNC_API_SINCE(1)
|
||||
FUNC_API_TEXTLOCK_ALLOW_CMDWIN
|
||||
{
|
||||
buf_T *buf = require_loaded_buffer(buffer, err);
|
||||
buf_T *buf = api_buf_ensure_loaded(buffer, err);
|
||||
|
||||
if (!buf) {
|
||||
return;
|
||||
@@ -490,7 +490,7 @@ void nvim_buf_set_text(uint64_t channel_id, Buffer buffer, Integer start_row, In
|
||||
replacement = scratch;
|
||||
}
|
||||
|
||||
buf_T *buf = require_loaded_buffer(buffer, err);
|
||||
buf_T *buf = api_buf_ensure_loaded(buffer, err);
|
||||
if (!buf) {
|
||||
return;
|
||||
}
|
||||
@@ -1116,7 +1116,7 @@ Boolean nvim_buf_set_mark(Buffer buffer, String name, Integer line, Integer col,
|
||||
FUNC_API_SINCE(8)
|
||||
{
|
||||
bool res = false;
|
||||
buf_T *buf = require_loaded_buffer(buffer, err);
|
||||
buf_T *buf = api_buf_ensure_loaded(buffer, err);
|
||||
|
||||
if (!buf) {
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user