docs(options): remove description for hidden options #30903

Problem:
Hidden options are documented despite being no-ops.

Solution:
Remove docs for hidden options.
Move tags for options that we plan to restore, to ":help nvim-missing".
Move tags for permanently removed options, to ":help nvim-removed".
This commit is contained in:
Famiu Haque 2024-10-22 22:14:01 +06:00 committed by GitHub
parent e178331488
commit 07b4cb6ada
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 11 additions and 493 deletions

View File

@ -40,7 +40,7 @@ Detail: The ":filetype on" command will load these files:
$VIMRUNTIME/scripts.vim is used to detect it from the contents of the
file.
When the GUI is running or will start soon, the |menu.vim| script is
also sourced. See |'go-M'| about avoiding that.
also sourced.
To add your own file types, see |new-filetype| below. To search for help on a
filetype prepend "ft-" and optionally append "-syntax", "-indent" or

View File

@ -164,7 +164,6 @@ menus and menu items. They are most useful for things that you can't remember
what the key sequence was.
For creating menus in a different language, see |:menutrans|.
If you don't want to use menus at all, see |'go-M'|.
*menu.vim*
The default menus are read from the file "$VIMRUNTIME/menu.vim". See

View File

@ -1141,16 +1141,6 @@ A jump table for the options with a short description can be found at |Q_op|.
added for the 'showbreak' setting.
(default: off)
*'browsedir'* *'bsdir'*
'browsedir' 'bsdir' string (default "last")
global
Which directory to use for the file browser:
last Use same directory as with last file browser, where a
file was opened or saved.
buffer Use the directory of the related buffer.
current Use the current directory.
{path} Use the specified directory
*'bufhidden'* *'bh'*
'bufhidden' 'bh' string (default "")
local to buffer |local-noglobal|
@ -3100,136 +3090,6 @@ A jump table for the options with a short description can be found at |Q_op|.
When 'guifont' has a valid font and 'guifontwide' is empty Vim will
attempt to set 'guifontwide' to a matching double-width font.
*'guioptions'* *'go'*
'guioptions' 'go' string (default "egmrLT" (MS-Windows))
global
This option only has an effect in the GUI version of Vim. It is a
sequence of letters which describes what components and options of the
GUI should be used.
To avoid problems with flags that are added in the future, use the
"+=" and "-=" feature of ":set" |add-option-flags|.
Valid letters are as follows:
*guioptions_a* *'go-a'*
'a' Autoselect: If present, then whenever VISUAL mode is started,
or the Visual area extended, Vim tries to become the owner of
the windowing system's global selection. This means that the
Visually highlighted text is available for pasting into other
applications as well as into Vim itself. When the Visual mode
ends, possibly due to an operation on the text, or when an
application wants to paste the selection, the highlighted text
is automatically yanked into the "* selection register.
Thus the selection is still available for pasting into other
applications after the VISUAL mode has ended.
If not present, then Vim won't become the owner of the
windowing system's global selection unless explicitly told to
by a yank or delete operation for the "* register.
The same applies to the modeless selection.
*'go-P'*
'P' Like autoselect but using the "+ register instead of the "*
register.
*'go-A'*
'A' Autoselect for the modeless selection. Like 'a', but only
applies to the modeless selection.
'guioptions' autoselect Visual autoselect modeless ~
"" - -
"a" yes yes
"A" - yes
"aA" yes yes
*'go-c'*
'c' Use console dialogs instead of popup dialogs for simple
choices.
*'go-d'*
'd' Use dark theme variant if available.
*'go-e'*
'e' Add tab pages when indicated with 'showtabline'.
'guitablabel' can be used to change the text in the labels.
When 'e' is missing a non-GUI tab pages line may be used.
The GUI tabs are only supported on some systems, currently
Mac OS/X and MS-Windows.
*'go-i'*
'i' Use a Vim icon.
*'go-m'*
'm' Menu bar is present.
*'go-M'*
'M' The system menu "$VIMRUNTIME/menu.vim" is not sourced. Note
that this flag must be added in the vimrc file, before
switching on syntax or filetype recognition (when the |gvimrc|
file is sourced the system menu has already been loaded; the
`:syntax on` and `:filetype on` commands load the menu too).
*'go-g'*
'g' Grey menu items: Make menu items that are not active grey. If
'g' is not included inactive menu items are not shown at all.
*'go-T'*
'T' Include Toolbar. Currently only in Win32 GUI.
*'go-r'*
'r' Right-hand scrollbar is always present.
*'go-R'*
'R' Right-hand scrollbar is present when there is a vertically
split window.
*'go-l'*
'l' Left-hand scrollbar is always present.
*'go-L'*
'L' Left-hand scrollbar is present when there is a vertically
split window.
*'go-b'*
'b' Bottom (horizontal) scrollbar is present. Its size depends on
the longest visible line, or on the cursor line if the 'h'
flag is included. |gui-horiz-scroll|
*'go-h'*
'h' Limit horizontal scrollbar size to the length of the cursor
line. Reduces computations. |gui-horiz-scroll|
And yes, you may even have scrollbars on the left AND the right if
you really want to :-). See |gui-scrollbars| for more information.
*'go-v'*
'v' Use a vertical button layout for dialogs. When not included,
a horizontal layout is preferred, but when it doesn't fit a
vertical layout is used anyway. Not supported in GTK 3.
*'go-p'*
'p' Use Pointer callbacks for X11 GUI. This is required for some
window managers. If the cursor is not blinking or hollow at
the right moment, try adding this flag. This must be done
before starting the GUI. Set it in your |gvimrc|. Adding or
removing it after the GUI has started has no effect.
*'go-k'*
'k' Keep the GUI window size when adding/removing a scrollbar, or
toolbar, tabline, etc. Instead, the behavior is similar to
when the window is maximized and will adjust 'lines' and
'columns' to fit to the window. Without the 'k' flag Vim will
try to keep 'lines' and 'columns' the same when adding and
removing GUI components.
*'guitablabel'* *'gtl'*
'guitablabel' 'gtl' string (default "")
global
When non-empty describes the text to use in a label of the GUI tab
pages line. When empty and when the result is empty Vim will use a
default label. See |setting-guitablabel| for more info.
The format of this option is like that of 'statusline'.
'guitabtooltip' is used for the tooltip, see below.
The expression will be evaluated in the |sandbox| when set from a
modeline, see |sandbox-option|.
This option cannot be set in a modeline when 'modelineexpr' is off.
Only used when the GUI tab pages line is displayed. 'e' must be
present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
used.
*'guitabtooltip'* *'gtt'*
'guitabtooltip' 'gtt' string (default "")
global
When non-empty describes the text to use in a tooltip for the GUI tab
pages line. When empty Vim will use a default tooltip.
This option is otherwise just like 'guitablabel' above.
You can include a line break. Simplest method is to use |:let|: >vim
let &guitabtooltip = "line one\nline two"
<
*'helpfile'* *'hf'*
'helpfile' 'hf' string (default (MS-Windows) "$VIMRUNTIME\doc\help.txt"
(others) "$VIMRUNTIME/doc/help.txt")
@ -3347,23 +3207,6 @@ A jump table for the options with a short description can be found at |Q_op|.
Can be overruled by using "\c" or "\C" in the pattern, see
|/ignorecase|.
*'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'*
'imcmdline' 'imc' boolean (default off)
global
When set the Input Method is always on when starting to edit a command
line, unless entering a search pattern (see 'imsearch' for that).
Setting this option is useful when your input method allows entering
English characters directly, e.g., when it's used to type accented
characters with dead keys.
*'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
'imdisable' 'imd' boolean (default off, on for some systems (SGI))
global
When set the Input Method is never used. This is useful to disable
the IM when it doesn't work properly.
Currently this option is on by default for SGI/IRIX machines. This
may change in later releases.
*'iminsert'* *'imi'*
'iminsert' 'imi' number (default 0)
local to buffer
@ -4395,69 +4238,6 @@ A jump table for the options with a short description can be found at |Q_op|.
< Will make Nvim scroll 5 lines at a time when scrolling vertically, and
scroll 2 columns at a time when scrolling horizontally.
*'mouseshape'* *'mouses'* *E547*
'mouseshape' 'mouses' string (default "i:beam,r:beam,s:updown,sd:cross,
m:no,ml:up-arrow,v:rightup-arrow")
global
This option tells Vim what the mouse pointer should look like in
different modes. The option is a comma-separated list of parts, much
like used for 'guicursor'. Each part consist of a mode/location-list
and an argument-list:
mode-list:shape,mode-list:shape,..
The mode-list is a dash separated list of these modes/locations:
In a normal window: ~
n Normal mode
v Visual mode
ve Visual mode with 'selection' "exclusive" (same as 'v',
if not specified)
o Operator-pending mode
i Insert mode
r Replace mode
Others: ~
c appending to the command-line
ci inserting in the command-line
cr replacing in the command-line
m at the 'Hit ENTER' or 'More' prompts
ml idem, but cursor in the last line
e any mode, pointer below last window
s any mode, pointer on a status line
sd any mode, while dragging a status line
vs any mode, pointer on a vertical separator line
vd any mode, while dragging a vertical separator line
a everywhere
The shape is one of the following:
avail name looks like ~
w x arrow Normal mouse pointer
w x blank no pointer at all (use with care!)
w x beam I-beam
w x updown up-down sizing arrows
w x leftright left-right sizing arrows
w x busy The system's usual busy pointer
w x no The system's usual "no input" pointer
x udsizing indicates up-down resizing
x lrsizing indicates left-right resizing
x crosshair like a big thin +
x hand1 black hand
x hand2 white hand
x pencil what you write with
x question big ?
x rightup-arrow arrow pointing right-up
w x up-arrow arrow pointing up
x <number> any X11 pointer number (see X11/cursorfont.h)
The "avail" column contains a 'w' if the shape is available for Win32,
x for X11.
Any modes not specified or shapes not available use the normal mouse
pointer.
Example: >vim
set mouseshape=s:udsizing,m:no
< will make the mouse turn to a sizing arrow over the status lines and
indicate no input when the hit-enter prompt is displayed (since
clicking the mouse has no effect in this state.)
*'mousetime'* *'mouset'*
'mousetime' 'mouset' number (default 500)
global
@ -4561,16 +4341,6 @@ A jump table for the options with a short description can be found at |Q_op|.
This option cannot be set from a |modeline| or in the |sandbox|, for
security reasons.
*'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
'opendevice' 'odev' boolean (default off)
global
only for Windows
Enable reading and writing from devices. This may get Vim stuck on a
device that can be opened but doesn't actually do the I/O. Therefore
it is off by default.
Note that on Windows editing "aux.h", "lpt1.txt" and the like also
result in editing a device.
*'operatorfunc'* *'opfunc'*
'operatorfunc' 'opfunc' string (default "")
global

View File

@ -45,7 +45,7 @@ directory where the Vim stuff is located. For example, if your syntax files
are in the "/usr/vim/vim82/syntax" directory, set $VIMRUNTIME to
"/usr/vim/vim82". You must do this in the shell, before starting Vim.
This command also sources the |menu.vim| script when the GUI is running or
will start soon. See |'go-M'| about avoiding that.
will start soon.
*:hi-normal* *:highlight-normal*
If you are running in the GUI, you can get white text on a black background

View File

@ -623,7 +623,12 @@ These legacy Vim features are not yet implemented:
- *:gui*
- *:gvim*
- *'browsedir'* *'bsdir'*
- *'completepopup'*
- *'guioptions'* *'go'*
- *'guitablabel'* *'gtl'*
- *'guitabtooltip'* *'gtt'*
- *'mouseshape'* *'mouses'*
- *'previewpopup'*
==============================================================================
@ -730,6 +735,8 @@ Options:
CMD-v (macOS), middle-click, …).
- *'imactivatefunc'* *'imaf'*
- *'imactivatekey'* *'imak'*
- *'imcmdline'* *'imc'* *'noimcmdline'* *'noimc'*
- *'imdisable'* *'imd'* *'noimdisable'* *'noimd'*
- *'imstatusfunc'* *'imsf'*
- *'insertmode'* *'im'* Use the following script to emulate 'insertmode': >vim
autocmd BufWinEnter * startinsert
@ -767,6 +774,7 @@ Options:
6 composing chars only.
- *'maxmem'* Nvim delegates memory-management to the OS.
- *'maxmemtot'* Nvim delegates memory-management to the OS.
- *'opendevice'* *'odev'* *'noopendevice'* *'noodev'*
- printoptions
- *'printdevice'*
- *'printencoding'*

View File

@ -575,19 +575,6 @@ vim.o.briopt = vim.o.breakindentopt
vim.wo.breakindentopt = vim.o.breakindentopt
vim.wo.briopt = vim.wo.breakindentopt
--- Which directory to use for the file browser:
--- last Use same directory as with last file browser, where a
--- file was opened or saved.
--- buffer Use the directory of the related buffer.
--- current Use the current directory.
--- {path} Use the specified directory
---
--- @type string
vim.o.browsedir = ""
vim.o.bsdir = vim.o.browsedir
vim.go.browsedir = vim.o.browsedir
vim.go.bsdir = vim.go.browsedir
--- This option specifies what happens when a buffer is no longer
--- displayed in a window:
--- <empty> follow the global 'hidden' option
@ -2900,148 +2887,6 @@ vim.o.gfw = vim.o.guifontwide
vim.go.guifontwide = vim.o.guifontwide
vim.go.gfw = vim.go.guifontwide
--- This option only has an effect in the GUI version of Vim. It is a
--- sequence of letters which describes what components and options of the
--- GUI should be used.
--- To avoid problems with flags that are added in the future, use the
--- "+=" and "-=" feature of ":set" `add-option-flags`.
---
--- Valid letters are as follows:
--- *guioptions_a* *'go-a'*
--- 'a' Autoselect: If present, then whenever VISUAL mode is started,
--- or the Visual area extended, Vim tries to become the owner of
--- the windowing system's global selection. This means that the
--- Visually highlighted text is available for pasting into other
--- applications as well as into Vim itself. When the Visual mode
--- ends, possibly due to an operation on the text, or when an
--- application wants to paste the selection, the highlighted text
--- is automatically yanked into the "* selection register.
--- Thus the selection is still available for pasting into other
--- applications after the VISUAL mode has ended.
--- If not present, then Vim won't become the owner of the
--- windowing system's global selection unless explicitly told to
--- by a yank or delete operation for the "* register.
--- The same applies to the modeless selection.
--- *'go-P'*
--- 'P' Like autoselect but using the "+ register instead of the "*
--- register.
--- *'go-A'*
--- 'A' Autoselect for the modeless selection. Like 'a', but only
--- applies to the modeless selection.
---
--- 'guioptions' autoselect Visual autoselect modeless ~
--- "" - -
--- "a" yes yes
--- "A" - yes
--- "aA" yes yes
---
--- *'go-c'*
--- 'c' Use console dialogs instead of popup dialogs for simple
--- choices.
--- *'go-d'*
--- 'd' Use dark theme variant if available.
--- *'go-e'*
--- 'e' Add tab pages when indicated with 'showtabline'.
--- 'guitablabel' can be used to change the text in the labels.
--- When 'e' is missing a non-GUI tab pages line may be used.
--- The GUI tabs are only supported on some systems, currently
--- Mac OS/X and MS-Windows.
--- *'go-i'*
--- 'i' Use a Vim icon.
--- *'go-m'*
--- 'm' Menu bar is present.
--- *'go-M'*
--- 'M' The system menu "$VIMRUNTIME/menu.vim" is not sourced. Note
--- that this flag must be added in the vimrc file, before
--- switching on syntax or filetype recognition (when the `gvimrc`
--- file is sourced the system menu has already been loaded; the
--- `:syntax on` and `:filetype on` commands load the menu too).
--- *'go-g'*
--- 'g' Grey menu items: Make menu items that are not active grey. If
--- 'g' is not included inactive menu items are not shown at all.
--- *'go-T'*
--- 'T' Include Toolbar. Currently only in Win32 GUI.
--- *'go-r'*
--- 'r' Right-hand scrollbar is always present.
--- *'go-R'*
--- 'R' Right-hand scrollbar is present when there is a vertically
--- split window.
--- *'go-l'*
--- 'l' Left-hand scrollbar is always present.
--- *'go-L'*
--- 'L' Left-hand scrollbar is present when there is a vertically
--- split window.
--- *'go-b'*
--- 'b' Bottom (horizontal) scrollbar is present. Its size depends on
--- the longest visible line, or on the cursor line if the 'h'
--- flag is included. `gui-horiz-scroll`
--- *'go-h'*
--- 'h' Limit horizontal scrollbar size to the length of the cursor
--- line. Reduces computations. `gui-horiz-scroll`
---
--- And yes, you may even have scrollbars on the left AND the right if
--- you really want to :-). See `gui-scrollbars` for more information.
---
--- *'go-v'*
--- 'v' Use a vertical button layout for dialogs. When not included,
--- a horizontal layout is preferred, but when it doesn't fit a
--- vertical layout is used anyway. Not supported in GTK 3.
--- *'go-p'*
--- 'p' Use Pointer callbacks for X11 GUI. This is required for some
--- window managers. If the cursor is not blinking or hollow at
--- the right moment, try adding this flag. This must be done
--- before starting the GUI. Set it in your `gvimrc`. Adding or
--- removing it after the GUI has started has no effect.
--- *'go-k'*
--- 'k' Keep the GUI window size when adding/removing a scrollbar, or
--- toolbar, tabline, etc. Instead, the behavior is similar to
--- when the window is maximized and will adjust 'lines' and
--- 'columns' to fit to the window. Without the 'k' flag Vim will
--- try to keep 'lines' and 'columns' the same when adding and
--- removing GUI components.
---
--- @type string
vim.o.guioptions = ""
vim.o.go = vim.o.guioptions
vim.go.guioptions = vim.o.guioptions
vim.go.go = vim.go.guioptions
--- When non-empty describes the text to use in a label of the GUI tab
--- pages line. When empty and when the result is empty Vim will use a
--- default label. See `setting-guitablabel` for more info.
---
--- The format of this option is like that of 'statusline'.
--- 'guitabtooltip' is used for the tooltip, see below.
--- The expression will be evaluated in the `sandbox` when set from a
--- modeline, see `sandbox-option`.
--- This option cannot be set in a modeline when 'modelineexpr' is off.
---
--- Only used when the GUI tab pages line is displayed. 'e' must be
--- present in 'guioptions'. For the non-GUI tab pages line 'tabline' is
--- used.
---
--- @type string
vim.o.guitablabel = ""
vim.o.gtl = vim.o.guitablabel
vim.go.guitablabel = vim.o.guitablabel
vim.go.gtl = vim.go.guitablabel
--- When non-empty describes the text to use in a tooltip for the GUI tab
--- pages line. When empty Vim will use a default tooltip.
--- This option is otherwise just like 'guitablabel' above.
--- You can include a line break. Simplest method is to use `:let`:
---
--- ```vim
--- let &guitabtooltip = "line one\nline two"
--- ```
---
---
--- @type string
vim.o.guitabtooltip = ""
vim.o.gtt = vim.o.guitabtooltip
vim.go.guitabtooltip = vim.o.guitabtooltip
vim.go.gtt = vim.go.guitabtooltip
--- Name of the main help file. All distributed help files should be
--- placed together in one directory. Additionally, all "doc" directories
--- in 'runtimepath' will be used.
@ -3184,29 +3029,6 @@ vim.o.ic = vim.o.ignorecase
vim.go.ignorecase = vim.o.ignorecase
vim.go.ic = vim.go.ignorecase
--- When set the Input Method is always on when starting to edit a command
--- line, unless entering a search pattern (see 'imsearch' for that).
--- Setting this option is useful when your input method allows entering
--- English characters directly, e.g., when it's used to type accented
--- characters with dead keys.
---
--- @type boolean
vim.o.imcmdline = false
vim.o.imc = vim.o.imcmdline
vim.go.imcmdline = vim.o.imcmdline
vim.go.imc = vim.go.imcmdline
--- When set the Input Method is never used. This is useful to disable
--- the IM when it doesn't work properly.
--- Currently this option is on by default for SGI/IRIX machines. This
--- may change in later releases.
---
--- @type boolean
vim.o.imdisable = false
vim.o.imd = vim.o.imdisable
vim.go.imdisable = vim.o.imdisable
vim.go.imd = vim.go.imdisable
--- Specifies whether :lmap or an Input Method (IM) is to be used in
--- Insert mode. Valid values:
--- 0 :lmap is off and IM is off
@ -4491,74 +4313,6 @@ vim.go.mousemev = vim.go.mousemoveevent
vim.o.mousescroll = "ver:3,hor:6"
vim.go.mousescroll = vim.o.mousescroll
--- This option tells Vim what the mouse pointer should look like in
--- different modes. The option is a comma-separated list of parts, much
--- like used for 'guicursor'. Each part consist of a mode/location-list
--- and an argument-list:
--- mode-list:shape,mode-list:shape,..
--- The mode-list is a dash separated list of these modes/locations:
--- In a normal window: ~
--- n Normal mode
--- v Visual mode
--- ve Visual mode with 'selection' "exclusive" (same as 'v',
--- if not specified)
--- o Operator-pending mode
--- i Insert mode
--- r Replace mode
---
--- Others: ~
--- c appending to the command-line
--- ci inserting in the command-line
--- cr replacing in the command-line
--- m at the 'Hit ENTER' or 'More' prompts
--- ml idem, but cursor in the last line
--- e any mode, pointer below last window
--- s any mode, pointer on a status line
--- sd any mode, while dragging a status line
--- vs any mode, pointer on a vertical separator line
--- vd any mode, while dragging a vertical separator line
--- a everywhere
---
--- The shape is one of the following:
--- avail name looks like ~
--- w x arrow Normal mouse pointer
--- w x blank no pointer at all (use with care!)
--- w x beam I-beam
--- w x updown up-down sizing arrows
--- w x leftright left-right sizing arrows
--- w x busy The system's usual busy pointer
--- w x no The system's usual "no input" pointer
--- x udsizing indicates up-down resizing
--- x lrsizing indicates left-right resizing
--- x crosshair like a big thin +
--- x hand1 black hand
--- x hand2 white hand
--- x pencil what you write with
--- x question big ?
--- x rightup-arrow arrow pointing right-up
--- w x up-arrow arrow pointing up
--- x <number> any X11 pointer number (see X11/cursorfont.h)
---
--- The "avail" column contains a 'w' if the shape is available for Win32,
--- x for X11.
--- Any modes not specified or shapes not available use the normal mouse
--- pointer.
---
--- Example:
---
--- ```vim
--- set mouseshape=s:udsizing,m:no
--- ```
--- will make the mouse turn to a sizing arrow over the status lines and
--- indicate no input when the hit-enter prompt is displayed (since
--- clicking the mouse has no effect in this state.)
---
--- @type string
vim.o.mouseshape = ""
vim.o.mouses = vim.o.mouseshape
vim.go.mouseshape = vim.o.mouseshape
vim.go.mouses = vim.go.mouseshape
--- Defines the maximum time in msec between two mouse clicks for the
--- second click to be recognized as a multi click.
---
@ -4678,19 +4432,6 @@ vim.o.ofu = vim.o.omnifunc
vim.bo.omnifunc = vim.o.omnifunc
vim.bo.ofu = vim.bo.omnifunc
--- only for Windows
--- Enable reading and writing from devices. This may get Vim stuck on a
--- device that can be opened but doesn't actually do the I/O. Therefore
--- it is off by default.
--- Note that on Windows editing "aux.h", "lpt1.txt" and the like also
--- result in editing a device.
---
--- @type boolean
vim.o.opendevice = false
vim.o.odev = vim.o.opendevice
vim.go.opendevice = vim.o.opendevice
vim.go.odev = vim.go.opendevice
--- This option specifies a function to be called by the `g@` operator.
--- See `:map-operator` for more info and an example. The value can be
--- the name of a function, a `lambda` or a `Funcref`. See

View File

@ -717,7 +717,7 @@ local function get_option_meta()
local optinfo = vim.api.nvim_get_all_options_info()
local ret = {} --- @type table<string,vim.option_meta>
for _, o in ipairs(opts) do
if o.desc then
if not o.immutable and not o.hidden and o.enable_if ~= false and o.desc then
if o.full_name == 'cmdheight' then
table.insert(o.scope, 'tab')
end