mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
runtime(helptoc): reload cached g:helptoc.shell_prompt when starting toc
Follow up on PR 10446 [1] so that changes at run-time (or after loading a vimrc) are reflected at next use. Instead of "uncaching" the variable by computing SHELL_PROMPT on each use, which could negatively impact performance, reload any user settings before creating the TOC. Also make sure, changes to the shell prompt variable do correctly invalidate b:toc, so that the table of content is correctly re-created after user makes any changes. [1]: https://github.com/vim/vim/pull/10446#issuecomment-2485169333 closes: #16097 Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
c7a96d6d1a
commit
c74a87eea2
@@ -2,9 +2,20 @@ vim9script noclear
|
|||||||
|
|
||||||
# Config {{{1
|
# Config {{{1
|
||||||
|
|
||||||
const SHELL_PROMPT: string = g:
|
var SHELL_PROMPT: string = ''
|
||||||
->get('helptoc', {})
|
|
||||||
->get('shell_prompt', '^\w\+@\w\+:\f\+\$\s')
|
def UpdateUserSettings() #{{{2
|
||||||
|
var new_prompt: string = g:
|
||||||
|
->get('helptoc', {})
|
||||||
|
->get('shell_prompt', '^\w\+@\w\+:\f\+\$\s')
|
||||||
|
if new_prompt != SHELL_PROMPT
|
||||||
|
SHELL_PROMPT = new_prompt
|
||||||
|
# invalidate cache: user config has changed
|
||||||
|
unlet! b:toc
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
|
||||||
|
UpdateUserSettings()
|
||||||
|
|
||||||
# Init {{{1
|
# Init {{{1
|
||||||
|
|
||||||
@@ -141,6 +152,8 @@ export def Open() #{{{2
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
UpdateUserSettings()
|
||||||
|
|
||||||
# invalidate the cache if the buffer's contents has changed
|
# invalidate the cache if the buffer's contents has changed
|
||||||
if exists('b:toc') && &filetype != 'man'
|
if exists('b:toc') && &filetype != 'man'
|
||||||
if b:toc.changedtick != b:changedtick
|
if b:toc.changedtick != b:changedtick
|
||||||
|
Reference in New Issue
Block a user