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
|
||||
|
||||
const SHELL_PROMPT: string = g:
|
||||
->get('helptoc', {})
|
||||
->get('shell_prompt', '^\w\+@\w\+:\f\+\$\s')
|
||||
var SHELL_PROMPT: string = ''
|
||||
|
||||
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
|
||||
|
||||
@@ -141,6 +152,8 @@ export def Open() #{{{2
|
||||
return
|
||||
endif
|
||||
|
||||
UpdateUserSettings()
|
||||
|
||||
# invalidate the cache if the buffer's contents has changed
|
||||
if exists('b:toc') && &filetype != 'man'
|
||||
if b:toc.changedtick != b:changedtick
|
||||
|
Reference in New Issue
Block a user