Some checks failed
		
		
	
	Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
				
			Detach Plugins / check (GitHub.vim) (push) Has been cancelled
				
			Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
				
			Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
				
			Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
				
			Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
				
			Detach Plugins / check (git.vim) (push) Has been cancelled
				
			Detach Plugins / check (iedit.vim) (push) Has been cancelled
				
			Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
				
			Detach Plugins / check (vim-chat) (push) Has been cancelled
				
			Detach Plugins / check (vim-cheat) (push) Has been cancelled
				
			Detach Plugins / check (vim-todo) (push) Has been cancelled
				
			Detach Plugins / check (xmake.vim) (push) Has been cancelled
				
			test / Linux (nvim, nightly) (push) Has been cancelled
				
			test / Linux (nvim, v0.3.8) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.4.4) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.5.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.6.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.7.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.1) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.2) (push) Has been cancelled
				
			test / Linux (nvim, v0.8.3) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.0) (push) Has been cancelled
				
			test / Linux (nvim, v0.9.1) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.052) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
				
			test / Linux (true, vim, v7.4.629) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
				
			test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
				
			test / Linux (vim, nightly) (push) Has been cancelled
				
			test / Linux (vim, v8.0.0184) (push) Has been cancelled
				
			test / Linux (vim, v8.0.1453) (push) Has been cancelled
				
			test / Linux (vim, v8.1.2269) (push) Has been cancelled
				
			test / Linux (vim, v8.2.2434) (push) Has been cancelled
				
			test / Linux (vim, v8.2.3995) (push) Has been cancelled
				
			test / Windows (nvim, nightly) (push) Has been cancelled
				
			test / Windows (nvim, v0.3.8) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.4.4) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.5.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.6.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.7.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.1) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.2) (push) Has been cancelled
				
			test / Windows (nvim, v0.8.3) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.0) (push) Has been cancelled
				
			test / Windows (nvim, v0.9.1) (push) Has been cancelled
				
			test / Windows (vim, nightly) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1185) (push) Has been cancelled
				
			test / Windows (vim, v7.4.1689) (push) Has been cancelled
				
			test / Windows (vim, v8.0.0027) (push) Has been cancelled
				
			test / Windows (vim, v8.0.1453) (push) Has been cancelled
				
			test / Windows (vim, v8.1.2269) (push) Has been cancelled
				
			test / Windows (vim, v8.2.2434) (push) Has been cancelled
				
			test / Windows (vim, v8.2.3995) (push) Has been cancelled
				
			docker / docker (push) Has been cancelled
				
			mirror / check (coding) (push) Has been cancelled
				
			mirror / check (gitee) (push) Has been cancelled
				
			mirror / check (gitlab) (push) Has been cancelled
				
			
		
			
				
	
	
		
			142 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# NuiText
 | 
						|
 | 
						|
NuiText is an abstraction layer on top of the following native functions:
 | 
						|
 | 
						|
- `vim.api.nvim_buf_set_text` (check `:h nvim_buf_set_text()`)
 | 
						|
- `vim.api.nvim_buf_set_extmark` (check `:h nvim_buf_set_extmark()`)
 | 
						|
 | 
						|
It helps you set text and add highlight for it on the buffer.
 | 
						|
 | 
						|
_Signature:_ `NuiText(content, extmark?)`
 | 
						|
 | 
						|
**Examples**
 | 
						|
 | 
						|
```lua
 | 
						|
local NuiText = require("nui.text")
 | 
						|
 | 
						|
local text = NuiText("Something Went Wrong!", "Error")
 | 
						|
 | 
						|
local bufnr, ns_id, linenr_start, byte_start = 0, -1, 1, 0
 | 
						|
 | 
						|
text:render(bufnr, ns_id, linenr_start, byte_start)
 | 
						|
```
 | 
						|
 | 
						|
## Parameters
 | 
						|
 | 
						|
### `content`
 | 
						|
 | 
						|
**Type:** `string` or `table`
 | 
						|
 | 
						|
Text content or `NuiText` object.
 | 
						|
 | 
						|
If `NuiText` object is passed, a copy of it is created.
 | 
						|
 | 
						|
### `extmark`
 | 
						|
 | 
						|
**Type:** `string` or `table`
 | 
						|
 | 
						|
Highlight group name or extmark options.
 | 
						|
 | 
						|
If a `string` is passed, it is used as the highlight group name.
 | 
						|
 | 
						|
If a `table` is passed it is used as extmark data. It can have the
 | 
						|
following keys:
 | 
						|
 | 
						|
| Key          | Description          |
 | 
						|
| ------------ | -------------------- |
 | 
						|
| `"hl_group"` | highlight group name |
 | 
						|
 | 
						|
For more, check `:help nvim_buf_set_extmark()`.
 | 
						|
 | 
						|
## Methods
 | 
						|
 | 
						|
### `text:set`
 | 
						|
 | 
						|
_Signature:_ `text:set(content, extmark?)`
 | 
						|
 | 
						|
Sets the text content and highlight information.
 | 
						|
 | 
						|
**Parameters**
 | 
						|
 | 
						|
| Name      | Type                | Description                             |
 | 
						|
| --------- | ------------------- | --------------------------------------- |
 | 
						|
| `content` | `string`            | text content                            |
 | 
						|
| `extmark` | `string` or `table` | highlight group name or extmark options |
 | 
						|
 | 
						|
This `extmark` parameter is exactly the same as `NuiText`'s `extmark` parameter.
 | 
						|
 | 
						|
### `text:content`
 | 
						|
 | 
						|
_Signature:_ `text:content()`
 | 
						|
 | 
						|
Returns the text content.
 | 
						|
 | 
						|
### `text:length`
 | 
						|
 | 
						|
_Signature:_ `text:length()`
 | 
						|
 | 
						|
Returns the byte length of the text.
 | 
						|
 | 
						|
### `text:width`
 | 
						|
 | 
						|
_Signature:_ `text:width()`
 | 
						|
 | 
						|
Returns the character length of the text.
 | 
						|
 | 
						|
### `text:highlight`
 | 
						|
 | 
						|
_Signature:_ `text:highlight(bufnr, ns_id, linenr, byte_start)`
 | 
						|
 | 
						|
Applies highlight for the text.
 | 
						|
 | 
						|
**Parameters**
 | 
						|
 | 
						|
| Name         | Type     | Description                                        |
 | 
						|
| ------------ | -------- | -------------------------------------------------- |
 | 
						|
| `bufnr`      | `number` | buffer number                                      |
 | 
						|
| `ns_id`      | `number` | namespace id (use `-1` for fallback namespace)     |
 | 
						|
| `linenr`     | `number` | line number (1-indexed)                            |
 | 
						|
| `byte_start` | `number` | start position of the text on the line (0-indexed) |
 | 
						|
 | 
						|
### `text:render`
 | 
						|
 | 
						|
_Signature:_ `text:render(bufnr, ns_id, linenr_start, byte_start, linenr_end?, byte_end?)`
 | 
						|
 | 
						|
Sets the text 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)                      |
 | 
						|
| `byte_start`   | `number` | start position of the text on the line (0-indexed) |
 | 
						|
| `linenr_end`   | `number` | end line number (1-indexed)                        |
 | 
						|
| `byte_end`     | `number` | end position of the text on the line (0-indexed)   |
 | 
						|
 | 
						|
### `text:render_char`
 | 
						|
 | 
						|
_Signature:_ `text:render_char(bufnr, ns_id, linenr_start, char_start, linenr_end?, char_end?)`
 | 
						|
 | 
						|
Sets the text on buffer and applies highlight.
 | 
						|
 | 
						|
This does the thing as `text:render` method, but you can use character count
 | 
						|
instead of byte count. It will convert multibyte character count to appropriate
 | 
						|
byte count for you.
 | 
						|
 | 
						|
**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)                      |
 | 
						|
| `char_start`   | `number` | start position of the text on the line (0-indexed) |
 | 
						|
| `linenr_end`   | `number` | end line number (1-indexed)                        |
 | 
						|
| `char_end`     | `number` | end position of the text on the line (0-indexed)   |
 | 
						|
 | 
						|
## Wiki Page
 | 
						|
 | 
						|
You can find additional documentation/examples/guides/tips-n-tricks in [nui.text wiki page](https://github.com/MunifTanjim/nui.nvim/wiki/nui.text).
 |