Buffer

Struct Buffer 

pub struct Buffer(pub(crate) i32);
Expand description

A wrapper around a Neovim buffer handle.

Tuple Fields§

§0: i32

Implementations§

§

impl Buffer

pub fn current() -> Buffer

Shorthand for get_current_buf.

pub fn handle(&self) -> i32

Retrieve buffer’s underlying id/handle

pub fn attach( &self, send_buffer: bool, opts: &BufAttachOpts, ) -> Result<(), Error>

Binding to nvim_buf_attach().

Used to register a set of callbacks on specific buffer events.

pub fn call<F, Res, Ret>(&self, fun: F) -> Result<Ret, Error>
where F: FnOnce(()) -> Res + 'static, Res: IntoResult<Ret>, <Res as IntoResult<Ret>>::Error: Error + 'static, Ret: Pushable + FromObject,

Binding to nvim_buf_call().

Calls a function with this buffer as the temporary current buffer.

pub fn del_keymap(&mut self, mode: Mode, lhs: &str) -> Result<(), Error>

Binding to nvim_buf_del_keymap().

Unmaps a buffer-local mapping for the given mode.

pub fn del_mark(&mut self, name: char) -> Result<(), Error>

Binding to nvim_buf_del_mark().

Deletes a named mark in the buffer.

pub fn del_var(&mut self, name: &str) -> Result<(), Error>

Binding to nvim_buf_del_var().

Removes a buffer-scoped (b:) variable.

pub fn delete(self, opts: &BufDeleteOpts) -> Result<(), Error>

Binding to nvim_buf_delete().

Deletes the buffer (not allowed while textlock is active).

pub fn get_changedtick(&self) -> Result<u32, Error>

pub fn get_keymap( &self, mode: Mode, ) -> Result<impl SuperIterator<KeymapInfos> + use<>, Error>

pub fn get_lines<R>( &self, line_range: R, strict_indexing: bool, ) -> Result<impl SuperIterator<String> + use<R>, Error>
where R: RangeBounds<usize>,

Binding to nvim_buf_get_lines().

Gets a line range from the buffer. Indexing is zero-based, end-exclusive.

pub fn get_mark(&self, name: char) -> Result<(usize, usize), Error>

Binding to nvim_buf_get_mark().

Returns a (1-0) indexed (row, col) tuple representing the position of the named mark.

pub fn get_name(&self) -> Result<String, Error>

Binding to nvim_buf_get_name().

Returns the full filepath of the buffer.

pub fn get_offset(&self, index: usize) -> Result<usize, Error>

Binding to nvim_buf_get_offset().

Returns the 0-indexed byte offset of a line.

pub fn get_text<R>( &self, line_range: R, start_col: usize, end_col: usize, opts: &GetTextOpts, ) -> Result<impl SuperIterator<String> + use<R>, Error>
where R: RangeBounds<usize>,

Binding to nvim_buf_get_text().

Gets a range from the buffer. This differs from Buffer::get_lines in that it allows retrieving only portions of a line.

Indexing is zero-based, with both row and column indices being end-exclusive.

pub fn get_var<Var>(&self, name: &str) -> Result<Var, Error>
where Var: FromObject,

Binding to nvim_buf_get_var().

Gets a buffer-scoped (b:) variable.

pub fn is_loaded(&self) -> bool

Binding to nvim_buf_is_loaded().

Checks if a buffer is valid and loaded.

pub fn is_valid(&self) -> bool

Binding to nvim_buf_is_valid().

Checks if a buffer is valid.

pub fn line_count(&self) -> Result<usize, Error>

Binding to nvim_buf_line_count().

Returns the number of lines in the given buffer.

pub fn set_keymap( &mut self, mode: Mode, lhs: &str, rhs: &str, opts: &SetKeymapOpts, ) -> Result<(), Error>

Binding to nvim_buf_set_keymap().

Sets a buffer-local mapping for the given mode. To set a global mapping use set_keymap instead.

pub fn set_lines<Line, Lines, R>( &mut self, line_range: R, strict_indexing: bool, replacement: Lines, ) -> Result<(), Error>
where R: RangeBounds<usize>, Lines: IntoIterator<Item = Line>, Line: Into<String>,

Binding to nvim_buf_set_lines().

Sets (replaces) a line-range in the buffer. Indexing is zero-based, end-exclusive.

pub fn set_mark( &mut self, name: char, line: usize, col: usize, opts: &SetMarkOpts, ) -> Result<(), Error>

Binding to nvim_buf_set_mark().

Sets a named mark in the buffer. Marks are (1,0)-indexed, and passing 0 as line deletes the mark.

pub fn set_name<Name>(&mut self, name: Name) -> Result<(), Error>
where Name: AsRef<Path>,

Binding to nvim_buf_set_name().

Sets the full file name for a buffer.

pub fn set_text<Line, Lines, R>( &mut self, line_range: R, start_col: usize, end_col: usize, replacement: Lines, ) -> Result<(), Error>
where R: RangeBounds<usize>, Lines: IntoIterator<Item = Line>, Line: Into<String>,

Binding to nvim_buf_set_text().

Sets (replaces) a range in the buffer. Indexing is zero-based, with both row and column indices being end-exclusive.

pub fn set_var<V>(&mut self, name: &str, value: V) -> Result<(), Error>
where V: ToObject,

Binding to nvim_buf_set_var().

Sets a buffer-scoped (b:) variable.

§

impl Buffer

pub fn create_user_command<Cmd>( &mut self, name: &str, command: Cmd, opts: &CreateCommandOpts, ) -> Result<(), Error>

Binding to nvim_buf_create_user_command().

Creates a new buffer-local user command.

pub fn del_user_command(&mut self, name: &str) -> Result<(), Error>

Binding to nvim_buf_del_user_command().

Deletes a buffer-local user-command. Use del_user_command to delete a global command.

pub fn get_commands( &self, opts: &GetCommandsOpts, ) -> Result<impl SuperIterator<CommandInfos> + use<>, Error>

§

impl Buffer

pub fn get_option<Opt>(&self, name: &str) -> Result<Opt, Error>
where Opt: FromObject,

👎Deprecated since 0.5.0: use get_option_value instead

Binding to nvim_buf_get_option().

Gets a buffer option value.

pub fn set_option<V>(&mut self, name: &str, value: V) -> Result<(), Error>
where V: ToObject,

👎Deprecated since 0.5.0: use set_option_value instead

Binding to nvim_buf_set_option().

Sets a buffer option value. Passing None as value deletes the option (only works if there’s a global fallback).

§

impl Buffer

pub fn add_highlight<R>( &mut self, ns_id: u32, hl_group: &str, line: usize, byte_range: R, ) -> Result<i64, Error>
where R: RangeBounds<usize>,

Binding to nvim_buf_add_highlight().

Adds a highlight to the buffer. Both line and byte_range are 0-indexed.

pub fn clear_namespace<R>( &mut self, ns_id: u32, line_range: R, ) -> Result<(), Error>
where R: RangeBounds<usize>,

Binding to nvim_buf_clear_namespace().

Clears namespaced objects like highlights, extmarks, or virtual text from a region.

The line range is 0-indexed.

pub fn del_extmark(&mut self, ns_id: u32, extmark_id: u32) -> Result<(), Error>

Binding to nvim_buf_del_extmark().

Removes an extmark from the buffer.

pub fn get_extmark_by_id( &self, ns_id: u32, extmark_id: u32, opts: &GetExtmarkByIdOpts, ) -> Result<(usize, usize, Option<ExtmarkInfos>), Error>

Binding to nvim_buf_get_extmark_by_id().

The first two elements of the returned tuple represent the 0-indexed row, col position of the extmark. The last element is only present if the details option field was set to true.

pub fn get_extmarks<NsId>( &self, ns_id: NsId, start: ExtmarkPosition, end: ExtmarkPosition, opts: &GetExtmarksOpts, ) -> Result<impl SuperIterator<(u32, usize, usize, Option<ExtmarkInfos>)> + use<NsId>, Error>

Bindings to nvim_buf_get_extmarks.

Gets all the extmarks in a buffer region specified by start and end positions. Returns an iterator over (extmark_id, row, col, infos) tuples in “traversal order”. Like for Buffer::get_extmark_by_id, the infos are present only if the details option field was set to true.

pub fn set_extmark( &mut self, ns_id: u32, line: usize, col: usize, opts: &SetExtmarkOpts, ) -> Result<u32, Error>

Binding to nvim_buf_set_extmark().

Creates or updates an extmark. Both line and col are 0-indexed. Returns the id of the created/updated extmark.

Trait Implementations§

Source§

impl BufferExt for Buffer

Source§

fn get_line(&self, idx: usize) -> Result<String>

Fetch a single line from a Buffer by 0-based index. Read more
Source§

fn get_lines( &self, line_range: RangeInclusive<usize>, strict_indexing: bool, ) -> Result<Box<dyn SuperIterator<String>>, Error>

Retrieves a range of lines from the buffer. Read more
Source§

fn set_text_at_cursor_pos(&mut self, text: &str)

Inserts text at the current cursor position in the active buffer. Read more
Source§

fn get_buf_type(&self) -> Option<String>

Retrieves the buffer type via the buftype option. Read more
Source§

fn get_channel(&self) -> Option<u32>

Source§

fn get_pid(&self) -> Result<String>

Retrieves the process ID associated with the buffer. Read more
Source§

fn get_text_between( &self, start: (usize, usize), end: (usize, usize), boundary: TextBoundary, ) -> Result<String>

Source§

fn is_terminal(&self) -> bool

Source§

fn send_command(&self, cmd: &str) -> Option<()>

§

impl Clone for Buffer

§

fn clone(&self) -> Buffer

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Buffer

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for Buffer

§

fn deserialize<__D>( __deserializer: __D, ) -> Result<Buffer, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Display for Buffer

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<&Buffer> for Object

§

fn from(buf: &Buffer) -> Object

Converts to this type from the input type.
Source§

impl From<&MruBuffer> for Buffer

Source§

fn from(value: &MruBuffer) -> Self

Converts to this type from the input type.
§

impl From<Buffer> for Object

§

fn from(buf: Buffer) -> Object

Converts to this type from the input type.
§

impl<H> From<H> for Buffer
where H: Into<i32>,

§

fn from(handle: H) -> Buffer

Converts to this type from the input type.
§

impl FromObject for Buffer

§

impl Hash for Buffer

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for Buffer

§

fn eq(&self, other: &Buffer) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Poppable for Buffer

§

unsafe fn pop(lstate: *mut State) -> Result<Buffer, Error>

Pops the value at the top of the stack.
§

impl Pushable for Buffer

§

unsafe fn push(self, lstate: *mut State) -> Result<i32, Error>

Pushes all its values on the Lua stack, returning the number of values that it pushed.
§

impl Serialize for Buffer

§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Eq for Buffer

§

impl StructuralPartialEq for Buffer

Auto Trait Implementations§

§

impl Freeze for Buffer

§

impl RefUnwindSafe for Buffer

§

impl Send for Buffer

§

impl Sync for Buffer

§

impl Unpin for Buffer

§

impl UnwindSafe for Buffer

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Any for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

§

fn type_name(&self) -> &'static str

§

impl<T> AnySync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> IntoResult<T> for T

§

type Error = Infallible

The error type in the returned Result.
§

fn into_result(self) -> Result<T, <T as IntoResult<T>>::Error>

Converts the value into a Result.
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> SectionExt for T
where T: Display + Send + Sync + 'static,

Source§

fn header<C>(self, header: C) -> IndentedSection<C, T>
where C: Display + Send + Sync + 'static,

Add a header to a Section and indent the body Read more
§

impl<T> ToObject for T
where T: Into<Object>,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> MaybeSend for T