aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-05-02 19:42:31 +0800
committerGitHub <noreply@github.com>2023-05-02 19:42:31 +0800
commit808752f1b09d2f03af5b58167602fef8320c11dc (patch)
tree0cf72ae00bd1b08053daee0ede8aa5495be704f0 /runtime
parentfba18a3b62310f4535d979a05288101b9af2ef50 (diff)
parent5b111a8f00f8dbe458a3d437c9f06c9419d24840 (diff)
downloadrneovim-808752f1b09d2f03af5b58167602fef8320c11dc.tar.gz
rneovim-808752f1b09d2f03af5b58167602fef8320c11dc.tar.bz2
rneovim-808752f1b09d2f03af5b58167602fef8320c11dc.zip
Merge pull request #23320 from luukvbaal/smoothscroll
feat(ui): add 'smoothscroll' option
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/news.txt3
-rw-r--r--runtime/doc/options.txt10
-rw-r--r--runtime/doc/quickref.txt1
-rw-r--r--runtime/optwin.vim3
4 files changed, 17 insertions, 0 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index f33cffa22e..bc357ac534 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -49,6 +49,9 @@ iterators |luaref-in|.
• Added |vim.treesitter.query.omnifunc()| for treesitter query files (set by
default).
+• |'smoothscroll'| option to scroll by screen line rather than by text line
+when |'wrap'| is set.
+
==============================================================================
CHANGED FEATURES *news-changed*
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ba73d79cd3..ab86e56a62 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -5652,6 +5652,16 @@ A jump table for the options with a short description can be found at |Q_op|.
option. Also see |ins-expandtab|. When 'expandtab' is not set, the
number of spaces is minimized by using <Tab>s.
+ *'smoothscroll'* *'sms'* *'nosmoothscroll'* *'nosms'*
+'smoothscroll' 'sms' boolean (default off)
+ local to window
+ Scrolling works with screen lines. When 'wrap' is set and the first
+ line in the window wraps part of it may not be visible, as if it is
+ above the window. "<<<" is displayed at the start of the first line,
+ highlighted with |hl-NonText|.
+ NOTE: only partly implemented, currently works with CTRL-E, CTRL-Y
+ and scrolling with the mouse.
+
*'softtabstop'* *'sts'*
'softtabstop' 'sts' number (default 0)
local to buffer
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 952f0064e6..c166ecd79d 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -870,6 +870,7 @@ Short explanation of each option: *option-list*
'smartcase' 'scs' no ignore case when pattern has uppercase
'smartindent' 'si' smart autoindenting for C programs
'smarttab' 'sta' use 'shiftwidth' when inserting <Tab>
+'smoothscroll' 'sms' scroll by screen lines when 'wrap' is set
'softtabstop' 'sts' number of spaces that <Tab> uses while editing
'spell' enable spell checking
'spellcapcheck' 'spc' pattern to locate end of a sentence
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 0d10ac4758..b7b9c61123 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -305,6 +305,9 @@ call <SID>Header(gettext("displaying text"))
call <SID>AddOption("scroll", gettext("number of lines to scroll for CTRL-U and CTRL-D"))
call append("$", "\t" .. s:local_to_window)
call <SID>OptionL("scr")
+call <SID>AddOption("smoothscroll", gettext("scroll by screen line"))
+call append("$", "\t" .. s:local_to_window)
+call <SID>BinOptionL("sms")
call <SID>AddOption("scrolloff", gettext("number of screen lines to show around the cursor"))
call append("$", " \tset so=" . &so)
call <SID>AddOption("wrap", gettext("long lines wrap"))