Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support hide scrollbar for view #603

Merged
merged 2 commits into from
Oct 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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