mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
API: Implement buffer_get_mark
This commit is contained in:
parent
6afc245305
commit
60043da29f
@ -321,9 +321,41 @@ void buffer_insert(Buffer buffer, int64_t index, StringArray lines, Error *err)
|
|||||||
buffer_set_slice(buffer, index, index, false, true, lines, err);
|
buffer_set_slice(buffer, index, index, false, true, lines, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
Position buffer_mark(Buffer buffer, String name, Error *err)
|
Position buffer_get_mark(Buffer buffer, String name, Error *err)
|
||||||
{
|
{
|
||||||
abort();
|
Position rv;
|
||||||
|
buf_T *buf = find_buffer(buffer, err);
|
||||||
|
|
||||||
|
if (!buf) {
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.size != 0) {
|
||||||
|
set_api_error("mark name must be a single character", err);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
pos_T *posp;
|
||||||
|
buf_T *savebuf;
|
||||||
|
char mark = *name.data;
|
||||||
|
|
||||||
|
try_start();
|
||||||
|
switch_buffer(&savebuf, buf);
|
||||||
|
posp = getmark(mark, false);
|
||||||
|
restore_buffer(savebuf);
|
||||||
|
|
||||||
|
if (try_end(err)) {
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (posp == NULL) {
|
||||||
|
set_api_error("invalid mark name", err);
|
||||||
|
return rv;
|
||||||
|
}
|
||||||
|
|
||||||
|
rv.row = posp->lnum;
|
||||||
|
rv.col = posp->col;
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void switch_to_win_for_buf(buf_T *buf,
|
static void switch_to_win_for_buf(buf_T *buf,
|
||||||
|
@ -133,14 +133,13 @@ bool buffer_is_valid(Buffer buffer);
|
|||||||
/// @param[out] err Details of an error that may have occurred
|
/// @param[out] err Details of an error that may have occurred
|
||||||
void buffer_insert(Buffer buffer, int64_t index, StringArray lines, Error *err);
|
void buffer_insert(Buffer buffer, int64_t index, StringArray lines, Error *err);
|
||||||
|
|
||||||
/// Creates a mark in the buffer and returns a tuple(row, col) representing
|
/// Return a tuple (row,col) representing the position of the named mark
|
||||||
/// the position of the named mark
|
|
||||||
///
|
///
|
||||||
/// @param buffer The buffer handle
|
/// @param buffer The buffer handle
|
||||||
/// @param name The mark's name
|
/// @param name The mark's name
|
||||||
/// @param[out] err Details of an error that may have occurred
|
/// @param[out] err Details of an error that may have occurred
|
||||||
/// @return The (row, col) tuple
|
/// @return The (row, col) tuple
|
||||||
Position buffer_mark(Buffer buffer, String name, Error *err);
|
Position buffer_get_mark(Buffer buffer, String name, Error *err);
|
||||||
|
|
||||||
#endif // NEOVIM_API_BUFFER_H
|
#endif // NEOVIM_API_BUFFER_H
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user