gutter
This commit is contained in:
+30
-9
@@ -64,21 +64,42 @@ api.editor:clear_tab_icon(1) -- снова "file"
|
||||
## Иконки на полях редактора (gutter)
|
||||
|
||||
Слева от редактора есть узкая колонка с иконками. Методы действуют на
|
||||
активную вкладку, а номера строк нумеруются с нуля, как в LSP. На одной строке
|
||||
живёт одна иконка; повторный вызов заменяет прежнюю.
|
||||
активную вкладку, а номера строк нумеруются с нуля, как в LSP.
|
||||
|
||||
У каждой иконки есть тип (`kind`), который задаёт сценарий: например,
|
||||
`diagnostics` или `breakpoint`. На строке может жить по одной иконке каждого
|
||||
типа, поэтому диагностика и другие сценарии не затирают иконки друг друга.
|
||||
Повторная установка иконки того же типа заменяет её. Колонка расширяется под
|
||||
самую насыщенную строку, чтобы иконки разных типов не накладывались.
|
||||
|
||||
| Метод | Описание |
|
||||
| --- | --- |
|
||||
| `api.editor:set_gutter_icon(line, icon, color)` | Поставить иконку на строку; `color` необязателен (`#RGB`, `#RGBA`, `#RRGGBB`, `#RRGGBBAA`). Без цвета иконка рисуется цветом темы. `false` — иконка или цвет неизвестны |
|
||||
| `api.editor:gutter_icon(line)` | Имя иконки на строке или `nil` |
|
||||
| `api.editor:gutter_color(line)` | Цвет иконки или `nil`, если цвет не задан |
|
||||
| `api.editor:clear_gutter_icon(line)` | Убрать иконку со строки; `false`, если её не было |
|
||||
| `api.editor:set_gutter_icon(line, icon, kind[, options])` | Поставить иконку типа `kind` на строку. `options = { color = "#RRGGBB", hover_color = "#RRGGBB" }` задаёт цвет и цвет при наведении; оба необязательны. Без цвета иконка рисуется цветом темы. `false` — иконка или цвет неизвестны либо тип пуст |
|
||||
| `api.editor:gutter_icon(line, kind)` | Имя иконки этого типа на строке или `nil` |
|
||||
| `api.editor:gutter_color(line, kind)` | Цвет иконки или `nil`, если цвет не задан |
|
||||
| `api.editor:gutter_hover_color(line, kind)` | Цвет иконки при наведении или `nil` |
|
||||
| `api.editor:clear_gutter_icon(line, kind)` | Убрать иконку этого типа со строки; `false`, если её не было |
|
||||
| `api.editor:clear_gutter_line(line)` | Убрать все иконки строки |
|
||||
| `api.editor:clear_gutter_kind(kind)` | Убрать иконки типа во всех строках активной вкладки; возвращает число удалённых |
|
||||
| `api.editor:clear_gutter()` | Убрать все иконки активной вкладки |
|
||||
| `api.editor:on_gutter_click(kind, callback)` | Назначить обработчик клика по иконке типа `kind`; `callback(line, icon, kind)`. `nil` вместо функции снимает обработчик |
|
||||
|
||||
```lua
|
||||
api.editor:set_gutter_icon(4, "circle", "#e5484d") -- красная точка на 5-й строке
|
||||
api.editor:set_gutter_icon(9, "play") -- цвет темы
|
||||
api.editor:clear_gutter_icon(9)
|
||||
api.editor:set_gutter_icon(4, "circle", "diagnostics", { color = "#e5484d" })
|
||||
api.editor:set_gutter_icon(4, "play", "breakpoint") -- вторая иконка на той же строке
|
||||
api.editor:set_gutter_icon(9, "play", "breakpoint", {
|
||||
color = "#888888",
|
||||
hover_color = "#ffffff",
|
||||
})
|
||||
|
||||
api.editor:on_gutter_click("breakpoint", function(line, icon, kind)
|
||||
print("клик", line, icon, kind)
|
||||
end)
|
||||
|
||||
api.editor:clear_gutter_icon(4, "diagnostics") -- только один тип строки
|
||||
api.editor:clear_gutter_kind("diagnostics") -- перерисовать только диагностику
|
||||
api.editor:clear_gutter_line(4) -- все иконки строки
|
||||
api.editor:clear_gutter() -- все иконки вкладки
|
||||
```
|
||||
|
||||
Иконки привязаны к номерам строк и автоматически не сдвигаются при правке
|
||||
|
||||
Reference in New Issue
Block a user