Skip to content

Commit

Permalink
feat: Support hide scrollbar for view (#603)
Browse files Browse the repository at this point in the history
* feat: Support hide scrollbar for view

* refactor: rename option from hide_scrollbar to scrollbar

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
  • Loading branch information
nfwyst and folke committed Oct 3, 2023
1 parent 396f914 commit f700175
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 87 deletions.
166 changes: 86 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -465,6 +465,10 @@ String or can also be a table like:

</td>
</tr>
<td> <b>scrollbar</b> </td>
<td>Set to <code>false</code> to hide the scrollbar.</td>
</tr>
<tr>
</table>

### Notify Options
Expand Down Expand Up @@ -718,86 +722,88 @@ vim.keymap.set("c", "<S-Enter>", function()
<summary>Click to see all highlight groups</summary>

<!-- hl_start -->
| Highlight Group | Default Group | Description |
| --- | --- | --- |
| **NoiceCmdline** | _MsgArea_ | Normal for the classic cmdline area at the bottom" |
| **NoiceCmdlineIcon** | _DiagnosticSignInfo_ | Cmdline icon |
| **NoiceCmdlineIconCalculator** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconCmdline** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconFilter** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconHelp** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconIncRename** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconInput** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconLua** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconSearch** | _DiagnosticSignWarn_ | Cmdline search icon (`/` and `?`) |
| **NoiceCmdlinePopup** | _Normal_ | Normal for the cmdline popup |
| **NoiceCmdlinePopupBorder** | _DiagnosticSignInfo_ | Cmdline popup border |
| **NoiceCmdlinePopupBorderCalculator** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderCmdline** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderFilter** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderHelp** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderIncRename** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderInput** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderLua** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderSearch** | _DiagnosticSignWarn_ | Cmdline popup border for search |
| **NoiceCmdlinePopupTitle** | _DiagnosticSignInfo_ | Cmdline popup border |
| **NoiceCmdlinePrompt** | _Title_ | prompt for input() |
| **NoiceCompletionItemKindClass** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindColor** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindConstant** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindConstructor** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindDefault** | _Special_ | |
| **NoiceCompletionItemKindEnum** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindEnumMember** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindField** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFile** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFolder** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFunction** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindInterface** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindKeyword** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindMethod** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindModule** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindProperty** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindSnippet** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindStruct** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindText** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindUnit** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindValue** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindVariable** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemMenu** | _none_ | Normal for the popupmenu |
| **NoiceCompletionItemWord** | _none_ | Normal for the popupmenu |
| **NoiceConfirm** | _Normal_ | Normal for the confirm view |
| **NoiceConfirmBorder** | _DiagnosticSignInfo_ | Border for the confirm view |
| **NoiceCursor** | _Cursor_ | Fake Cursor |
| **NoiceFormatConfirm** | _CursorLine_ | |
| **NoiceFormatConfirmDefault** | _Visual_ | |
| **NoiceFormatDate** | _Special_ | |
| **NoiceFormatEvent** | _NonText_ | |
| **NoiceFormatKind** | _NonText_ | |
| **NoiceFormatLevelDebug** | _NonText_ | |
| **NoiceFormatLevelError** | _DiagnosticVirtualTextError_ | |
| **NoiceFormatLevelInfo** | _DiagnosticVirtualTextInfo_ | |
| **NoiceFormatLevelOff** | _NonText_ | |
| **NoiceFormatLevelTrace** | _NonText_ | |
| **NoiceFormatLevelWarn** | _DiagnosticVirtualTextWarn_ | |
| **NoiceFormatProgressDone** | _Search_ | Progress bar done |
| **NoiceFormatProgressTodo** | _CursorLine_ | progress bar todo |
| **NoiceFormatTitle** | _Title_ | |
| **NoiceLspProgressClient** | _Title_ | Lsp progress client name |
| **NoiceLspProgressSpinner** | _Constant_ | Lsp progress spinner |
| **NoiceLspProgressTitle** | _NonText_ | Lsp progress title |
| **NoiceMini** | _MsgArea_ | Normal for mini view |
| **NoicePopup** | _NormalFloat_ | Normal for popup views |
| **NoicePopupBorder** | _FloatBorder_ | Border for popup views |
| **NoicePopupmenu** | _Pmenu_ | Normal for the popupmenu |
| **NoicePopupmenuBorder** | _FloatBorder_ | Popupmenu border |
| **NoicePopupmenuMatch** | _Special_ | Part of the item that matches the input |
| **NoicePopupmenuSelected** | _PmenuSel_ | Selected item in the popupmenu |
| **NoiceScrollbar** | _PmenuSbar_ | Normal for scrollbar |
| **NoiceScrollbarThumb** | _PmenuThumb_ | Scrollbar thumb |
| **NoiceSplit** | _NormalFloat_ | Normal for split views |
| **NoiceSplitBorder** | _FloatBorder_ | Border for split views |
| **NoiceVirtualText** | _DiagnosticVirtualTextInfo_ | Default hl group for virtualtext views |

| Highlight Group | Default Group | Description |
| -------------------------------------- | -------------------------------- | -------------------------------------------------- |
| **NoiceCmdline** | _MsgArea_ | Normal for the classic cmdline area at the bottom" |
| **NoiceCmdlineIcon** | _DiagnosticSignInfo_ | Cmdline icon |
| **NoiceCmdlineIconCalculator** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconCmdline** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconFilter** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconHelp** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconIncRename** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconInput** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconLua** | _NoiceCmdlineIcon_ | |
| **NoiceCmdlineIconSearch** | _DiagnosticSignWarn_ | Cmdline search icon (`/` and `?`) |
| **NoiceCmdlinePopup** | _Normal_ | Normal for the cmdline popup |
| **NoiceCmdlinePopupBorder** | _DiagnosticSignInfo_ | Cmdline popup border |
| **NoiceCmdlinePopupBorderCalculator** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderCmdline** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderFilter** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderHelp** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderIncRename** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderInput** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderLua** | _NoiceCmdlinePopupBorder_ | |
| **NoiceCmdlinePopupBorderSearch** | _DiagnosticSignWarn_ | Cmdline popup border for search |
| **NoiceCmdlinePopupTitle** | _DiagnosticSignInfo_ | Cmdline popup border |
| **NoiceCmdlinePrompt** | _Title_ | prompt for input() |
| **NoiceCompletionItemKindClass** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindColor** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindConstant** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindConstructor** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindDefault** | _Special_ | |
| **NoiceCompletionItemKindEnum** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindEnumMember** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindField** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFile** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFolder** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindFunction** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindInterface** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindKeyword** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindMethod** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindModule** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindProperty** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindSnippet** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindStruct** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindText** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindUnit** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindValue** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemKindVariable** | _NoiceCompletionItemKindDefault_ | |
| **NoiceCompletionItemMenu** | _none_ | Normal for the popupmenu |
| **NoiceCompletionItemWord** | _none_ | Normal for the popupmenu |
| **NoiceConfirm** | _Normal_ | Normal for the confirm view |
| **NoiceConfirmBorder** | _DiagnosticSignInfo_ | Border for the confirm view |
| **NoiceCursor** | _Cursor_ | Fake Cursor |
| **NoiceFormatConfirm** | _CursorLine_ | |
| **NoiceFormatConfirmDefault** | _Visual_ | |
| **NoiceFormatDate** | _Special_ | |
| **NoiceFormatEvent** | _NonText_ | |
| **NoiceFormatKind** | _NonText_ | |
| **NoiceFormatLevelDebug** | _NonText_ | |
| **NoiceFormatLevelError** | _DiagnosticVirtualTextError_ | |
| **NoiceFormatLevelInfo** | _DiagnosticVirtualTextInfo_ | |
| **NoiceFormatLevelOff** | _NonText_ | |
| **NoiceFormatLevelTrace** | _NonText_ | |
| **NoiceFormatLevelWarn** | _DiagnosticVirtualTextWarn_ | |
| **NoiceFormatProgressDone** | _Search_ | Progress bar done |
| **NoiceFormatProgressTodo** | _CursorLine_ | progress bar todo |
| **NoiceFormatTitle** | _Title_ | |
| **NoiceLspProgressClient** | _Title_ | Lsp progress client name |
| **NoiceLspProgressSpinner** | _Constant_ | Lsp progress spinner |
| **NoiceLspProgressTitle** | _NonText_ | Lsp progress title |
| **NoiceMini** | _MsgArea_ | Normal for mini view |
| **NoicePopup** | _NormalFloat_ | Normal for popup views |
| **NoicePopupBorder** | _FloatBorder_ | Border for popup views |
| **NoicePopupmenu** | _Pmenu_ | Normal for the popupmenu |
| **NoicePopupmenuBorder** | _FloatBorder_ | Popupmenu border |
| **NoicePopupmenuMatch** | _Special_ | Part of the item that matches the input |
| **NoicePopupmenuSelected** | _PmenuSel_ | Selected item in the popupmenu |
| **NoiceScrollbar** | _PmenuSbar_ | Normal for scrollbar |
| **NoiceScrollbarThumb** | _PmenuThumb_ | Scrollbar thumb |
| **NoiceSplit** | _NormalFloat_ | Normal for split views |
| **NoiceSplitBorder** | _FloatBorder_ | Border for split views |
| **NoiceVirtualText** | _DiagnosticVirtualTextInfo_ | Default hl group for virtualtext views |

<!-- hl_end -->

</details>
1 change: 1 addition & 0 deletions lua/noice/types/nui.lua
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@

---@class _.NuiSplitOptions: _.NuiBaseOptions
---@field position "top"|"right"|"bottom"|"left"
---@field scrollbar? boolean
---@field min_size? number
---@field max_size? number
---@field size number|string
Expand Down
18 changes: 11 additions & 7 deletions lua/noice/view/nui.lua
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,13 @@ function NuiView:create()

self:mount()
self:update_layout()
self._scroll = Scrollbar({
winnr = self._nui.winid,
padding = Util.nui.normalize_padding(self._opts.border),
})
self._scroll:mount()
if self._opts.scrollbar ~= false then
self._scroll = Scrollbar({
winnr = self._nui.winid,
padding = Util.nui.normalize_padding(self._opts.border),
})
self._scroll:mount()
end
self._loading = false
end

Expand Down Expand Up @@ -304,8 +306,10 @@ function NuiView:show()
self:smart_move()
end

self._scroll.winnr = self._nui.winid
self._scroll:show()
if self._scroll then
self._scroll.winnr = self._nui.winid
self._scroll:show()
end
self:fix_border()
self:autohide()
end
Expand Down

0 comments on commit f700175

Please sign in to comment.