mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 12:40:05 +08:00
101 lines
2.8 KiB
Markdown
101 lines
2.8 KiB
Markdown
# NuiLine
|
|
|
|
NuiLine is an abstraction layer on top of the following native functions:
|
|
|
|
- `vim.api.nvim_buf_set_lines` (check `:h nvim_buf_set_lines()`)
|
|
- `vim.api.nvim_buf_set_text` (check `:h nvim_buf_set_text()`)
|
|
- `vim.api.nvim_buf_add_highlight` (check `:h nvim_buf_add_highlight()`)
|
|
|
|
It helps you create line on the buffer containing multiple [`NuiText`](../text)s.
|
|
|
|
_Signature:_ `NuiLine(texts?)`
|
|
|
|
**Example**
|
|
|
|
```lua
|
|
local NuiLine = require("nui.line")
|
|
|
|
local line = NuiLine()
|
|
|
|
line:append("Something Went Wrong!", "Error")
|
|
|
|
local bufnr, ns_id, linenr_start = 0, -1, 1
|
|
|
|
line:render(bufnr, ns_id, linenr_start)
|
|
```
|
|
|
|
## Parameters
|
|
|
|
### `texts`
|
|
|
|
**Type:** `table[]`
|
|
|
|
List of `NuiText` objects to set as initial texts.
|
|
|
|
**Example**
|
|
|
|
```lua
|
|
local text_one = NuiText("One")
|
|
local text_two = NuiText("Two")
|
|
local line = NuiLine({ text_one, text_two })
|
|
```
|
|
|
|
## Methods
|
|
|
|
### `line:append`
|
|
|
|
_Signature:_ `line:append(content, highlight?)`
|
|
|
|
Adds a chunk of content to the line.
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type | Description |
|
|
| ----------- | -------------------------------- | --------------------- |
|
|
| `content` | `string` / `NuiText` / `NuiLine` | content |
|
|
| `highlight` | `string` or `table` | highlight information |
|
|
|
|
If `text` is `string`, these parameters are passed to `NuiText`
|
|
and a `NuiText` object is returned.
|
|
|
|
It `content` is a `NuiText`/`NuiLine` object, it is returned unchanged.
|
|
|
|
### `line:content`
|
|
|
|
_Signature:_ `line:content()`
|
|
|
|
Returns the line content.
|
|
|
|
### `line:highlight`
|
|
|
|
_Signature:_ `line:highlight(bufnr, ns_id, linenr)`
|
|
|
|
Applies highlight for the line.
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type | Description |
|
|
| -------- | -------- | ---------------------------------------------- |
|
|
| `bufnr` | `number` | buffer number |
|
|
| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
|
|
| `linenr` | `number` | line number (1-indexed) |
|
|
|
|
### `line:render`
|
|
|
|
_Signature:_ `line:render(bufnr, ns_id, linenr_start, linenr_end?)`
|
|
|
|
Sets the line on buffer and applies highlight.
|
|
|
|
**Parameters**
|
|
|
|
| Name | Type | Description |
|
|
| -------------- | -------- | ---------------------------------------------- |
|
|
| `bufnr` | `number` | buffer number |
|
|
| `ns_id` | `number` | namespace id (use `-1` for fallback namespace) |
|
|
| `linenr_start` | `number` | start line number (1-indexed) |
|
|
| `linenr_end` | `number` | end line number (1-indexed) |
|
|
|
|
## Wiki Page
|
|
|
|
You can find additional documentation/examples/guides/tips-n-tricks in [nui.line wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.line).
|