Update runtime files
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 3615875..71200a3 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -26,6 +26,7 @@
Option ' :help 'textwidth'
Regular expression / :help /[
See |help-summary| for more contexts and an explanation.
+ See |notation| for an explanation of the help syntax.
Search for help: Type ":help word", then hit CTRL-D to see matching
help entries for "word".
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 55c2146..ee17e64 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -808,8 +808,33 @@
When on, Vim will change the current working directory whenever you
change the directory of the shell running in a terminal window. You
need proper setting-up, so whenever the shell's pwd changes an OSC 7
- escape sequence will be emitted. For example, on Linux, you can source
- /etc/profile.d/vte.sh in your shell profile if you use bash or zsh.
+ escape sequence will be emitted. For example, on Linux, you can
+ source /etc/profile.d/vte.sh in your shell profile if you use bash or
+ zsh. For bash this should work (put it in a bash init file): >
+ if [[ -n "$VIM_TERMINAL" ]]; then
+ PROMPT_COMMAND='_vim_sync_PWD'
+ function _vim_sync_PWD() {
+ printf "\033]7;file://%s\033\\" "$PWD"
+ }
+ fi
+<
+ Or, in a zsh init file: >
+ if [[ -n "$VIM_TERMINAL" ]]; then
+ autoload -Uz add-zsh-hook
+ add-zsh-hook -Uz chpwd _vim_sync_PWD
+ function _vim_sync_PWD() {
+ printf "\033]7;file://%s\033\\" "$PWD"
+ }
+ fi
+<
+ In a fish init file: >
+ if test -n "$VIM_TERMINAL"
+ function _vim_sync_PWD --on-variable=PWD
+ printf "\033]7;file://%s\033\\" "$PWD"
+ end
+ end
+<
+ You can find an alternative method at |terminal-autoshelldir|.
When the parsing of the OSC sequence fails you get *E1179* .
*'arabic'* *'arab'* *'noarabic'* *'noarab'*
@@ -1767,7 +1792,8 @@
page can have a different value.
When 'cmdheight' is zero, there is no command-line unless it is being
- used. Any messages will cause the |hit-enter| prompt.
+ used. Some informative messages will not be displayed, any other
+ messages will cause the |hit-enter| prompt.
*'cmdwinheight'* *'cwh'*
'cmdwinheight' 'cwh' number (default 7)
@@ -5027,8 +5053,8 @@
*'lispwords'* *'lw'*
'lispwords' 'lw' string (default is very long)
global or local to buffer |global-local|
- Comma-separated list of words that influence the Lisp indenting.
- |'lisp'|
+ Comma-separated list of words that influence the Lisp indenting when
+ enabled with the |'lisp'| option.
*'list'* *'nolist'*
'list' boolean (default off)
@@ -7327,6 +7353,7 @@
Name of the word list file where words are added for the |zg| and |zw|
commands. It must end in ".{encoding}.add". You need to include the
path, otherwise the file is placed in the current directory.
+ The path may include characters from 'isfname', space, comma and '@'.
*E765*
It may also be a comma-separated list of names. A count before the
|zg| and |zw| commands can be used to access each. This allows using
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 6074361..7e3fe43 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7900,6 +7900,7 @@
ignore-errors eval.txt /*ignore-errors*
ignore-timestamp editing.txt /*ignore-timestamp*
import-legacy vim9.txt /*import-legacy*
+import-map vim9.txt /*import-map*
improved-autocmds-5.4 version5.txt /*improved-autocmds-5.4*
improved-quickfix version5.txt /*improved-quickfix*
improved-sessions version5.txt /*improved-sessions*
@@ -10086,6 +10087,7 @@
termdebug_wide terminal.txt /*termdebug_wide*
terminal terminal.txt /*terminal*
terminal-api terminal.txt /*terminal-api*
+terminal-autoshelldir terminal.txt /*terminal-autoshelldir*
terminal-client-server terminal.txt /*terminal-client-server*
terminal-close terminal.txt /*terminal-close*
terminal-colors os_unix.txt /*terminal-colors*
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 81dd7c6..56f0dc8 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -1019,6 +1019,36 @@
Rationale: Why not allow for any command or expression? Because that might
create a security problem.
+ *terminal-autoshelldir*
+This can be used to pass the current directory from a shell to Vim.
+Put this in your .vimrc: >
+ def g:Tapi_lcd(_, args: string)
+ execute 'silent lcd ' .. args
+ enddef
+<
+And, in a bash init file: >
+ if [[ -n "$VIM_TERMINAL" ]]; then
+ PROMPT_COMMAND='_vim_sync_PWD'
+ function _vim_sync_PWD() {
+ printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
+ }
+ fi
+<
+Or, for zsh: >
+ if [[ -n "$VIM_TERMINAL" ]]; then
+ autoload -Uz add-zsh-hook
+ add-zsh-hook -Uz chpwd _vim_sync_PWD
+ function _vim_sync_PWD() {
+ printf '\033]51;["call", "Tapi_lcd", "%q"]\007' "$PWD"
+ }
+ fi
+<
+Or, for fish: >
+ if test -n "$VIM_TERMINAL"
+ function _vim_sync_PWD --on-variable=PWD
+ printf '\033]51;["call", "Tapi_lcd", "%s"]\007' "$PWD"
+ end
+ end
Using the client-server feature ~
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d2adeff..059e44b 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,20 +38,6 @@
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Support virtual text: #7553
-- Wrong cursor position in Insert mode, wrong pos after typing char #10786
-- implement "text_align" - right
- when not truncated, may increase line height
-- implement "text_align" - below
- need to compute extra screen line
-- implement "text_wrap" - truncate
-- when Tab is in text handle it like a space
-- Also consider an empty line, should fix #10786. Also check inserting text.
-- win_lbr_chartabsize() TODO item: count screen cells
-- check that when inserting/deleting text col == MAXCOL isn't changed
-- wrong cursor position (Yegappan, July 27)
-- many tests
-
Further Vim9 improvements, possibly after launch:
- Use Vim9 for more runtime files.
- Check performance with callgrind and kcachegrind.
@@ -129,19 +115,6 @@
Use ERROR_IF_POPUP_WINDOW for these.
- Figure out the size and position better if wrapping inserts indent
-Text properties:
-- property is overruled by cursorline. (#8225).
- Add better control over priority? Make list of all highlighting, specify
- where property fits in.
- Or Should we let the textprop highlight overrule other (e.g. diff) highlight
- if the priority is above a certain value? (#7392)
- Combining text property with 'cursorline' does not always work (Billie
- Cleek, #5533)
-- Add text property that shifts text to make room for annotation (e.g.
- variable type). Like the opposite of conceal. Requires fixing the cursor
- positioning and mouse clicks as with conceal mode.
-- See remarks at top of src/textprop.c
-
'incsearch' with :s:
- :s/foo using CTRL-G moves to another line, should not happen, or use the
correct line (it uses the last but one line) (Lifepillar, Aug 18, #3345)
@@ -248,6 +221,7 @@
To avoid flicker: add an option that when a screen clear is requested, instead
of clearing it draws everything and uses "clear to end of line" for every line.
+Resetting 't_ut' already causes this?
When scheme can't be found by configure there is no clear "not found" message:
configure:5769: checking MzScheme install prefix
@@ -2679,6 +2653,8 @@
Spell checking:
+- [s does not find missing capital at start of the line. #10838
+ Probably because the dot at the end of the previous line isn't seen.
- When 'cursorline' is set and the first word should have SpellCap
highlighting, redrawing the line removes it when moving the cursor away
from the line. (#7085) Would need to inspect the end of the previous line
@@ -3784,6 +3760,7 @@
Syntax highlighting:
Long term goal: faster, better, etc. Options:
- use treesitter, NeoVim uses it - Many people don't like it.
+ After changes requires rebuilding the library.
- use TextMate, vscode uses it. #9087 - Other people don't like it.
Vscode is asked to switch to treesitter:
https://github.com/microsoft/vscode/issues/50140
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 7f9cee4..c1f74d6 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -268,14 +268,15 @@
You cannot `unlet` script-local variables in |Vim9| script, only in legacy
script.
-When a script finishes, the local variables declared there will not be
-deleted. Functions defined in the script can use them. Example:
+When a script has been processed to the end, the local variables declared
+there will not be deleted. Functions defined in the script can use them.
+Example:
>
vim9script
var counter = 0
def g:GetCount(): number
- s:counter += 1
- return s:counter
+ counter += 1
+ return counter
enddef
Every time you call the function it will return the next count: >
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 5fba47b..01412a0 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1773,7 +1773,7 @@
name # Error!
echo that
.name # Error!
-
+< *import-map*
When you've imported a function from one script into a vim9 script you can
refer to the imported function in a mapping by prefixing it with |<SID>|: >
noremap <silent> ,a :call <SID>name.Function()<CR>