From 1f7f83ff678de4ba2acaefafb9fbd1d69dd2abe3 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 17 Oct 2024 07:32:49 +0800 Subject: [PATCH 1/3] vim-patch:partial:8.2.4712: only get profiling information after exiting https://github.com/vim/vim/commit/18ee0f603ebd3c091f6d2ab88e652fda32821048 Doc updates only. Cherry-pick profiling doc change from patch 8.2.2400. Co-authored-by: Yegappan Lakshmanan --- runtime/doc/repeat.txt | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 521d690d93..49679213e2 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -967,21 +967,24 @@ For example, to profile the one_script.vim script file: > :prof[ile] start {fname} *:prof* *:profile* *E750* - Start profiling, write the output in {fname} upon exit. + Start profiling, write the output in {fname} upon exit or when + a `:profile stop` or `:profile dump` command is invoked. "~/" and environment variables in {fname} will be expanded. If {fname} already exists it will be silently overwritten. The variable |v:profiling| is set to one. :prof[ile] stop - Write the logfile and stop profiling. + Write the collected profiling information to the logfile and + stop profiling. You can use the `:profile start` command to + clear the profiling statistics and start profiling again. :prof[ile] pause - Don't profile until the following ":profile continue". Can be + Don't profile until the following `:profile continue`. Can be used when doing something that should not be counted (e.g., an external command). Does not nest. :prof[ile] continue - Continue profiling after ":profile pause". + Continue profiling after `:profile pause`. :prof[ile] func {pattern} Profile function that matches the pattern {pattern}. @@ -999,16 +1002,24 @@ For example, to profile the one_script.vim script file: > won't work. :prof[ile] dump - Don't wait until exiting Vim and write the current state of - profiling to the log immediately. + Write the current state of profiling to the logfile + immediately. After running this command, Vim continues to + collect the profiling statistics. :profd[el] ... *:profd* *:profdel* Stop profiling for the arguments specified. See |:breakdel| - for the arguments. - + for the arguments. Examples: > + profdel func MyFunc + profdel file MyScript.vim + profdel here You must always start with a ":profile start fname" command. The resulting -file is written when Vim exits. Here is an example of the output, with line +file is written when Vim exits. For example, to profile one specific +function: > + profile start /tmp/vimprofile + profile func MyFunc + +Here is an example of the output, with line numbers prepended for the explanation: 1 FUNCTION Test2() ~ From de74ed35aff7ce5586a5fcefda415942108eb4ac Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 17 Oct 2024 07:30:49 +0800 Subject: [PATCH 2/3] vim-patch:4bfb899: runtime(help): fix end of sentence highlight in code examples closes: vim/vim#15745 https://github.com/vim/vim/commit/4bfb89996f227d5fbb4803f0d8dbd3105483b625 Co-authored-by: Christian Brabandt Co-authored-by: Danilo Rezende --- runtime/doc/repeat.txt | 6 +++--- runtime/syntax/help.vim | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index 49679213e2..abeefb980e 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -979,9 +979,9 @@ For example, to profile the one_script.vim script file: > clear the profiling statistics and start profiling again. :prof[ile] pause - Don't profile until the following `:profile continue`. Can be - used when doing something that should not be counted (e.g., an - external command). Does not nest. + Stop profiling until the next `:profile continue` command. + Can be used when doing something that should not be counted + (e.g., an external command). Does not nest. :prof[ile] continue Continue profiling after `:profile pause`. diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim index bccbacaeec..dc892a7d60 100644 --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Vim help file " Maintainer: The Vim Project -" Last Change: 2024 Oct 08 +" Last Change: 2024 Oct 16 " Former Maintainer: Bram Moolenaar " Quit when a (custom) syntax file was already loaded @@ -43,7 +43,8 @@ syn match helpOption "'[a-z]\{2,\}'" syn match helpOption "'t_..'" syn match helpNormal "'ab'" syn match helpCommand "`[^` \t]\+`"hs=s+1,he=e-1 contains=helpBacktick -syn match helpCommand "\(^\|[^a-z"[]\)\zs`[^`]\+`\ze\([^a-z\t."']\|$\)"hs=s+1,he=e-1 contains=helpBacktick +" doesn't allow a . directly after an ending backtick. See :helpgrep `[^`,]\+ [^`,]\+`\. +syn match helpCommand "\(^\|[^a-z"[]\)\zs`[^`]\+`\ze\([^a-z\t."']\|[.?!]\?$\)"hs=s+1,he=e-1 contains=helpBacktick syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore if has("conceal") From c89150241d52ac70dd5bf0f4f8cb90902a7ccf6c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 17 Oct 2024 07:48:42 +0800 Subject: [PATCH 3/3] vim-patch:6c2fc37: runtime(help): Update help syntax This commit makaes the following changes to the vim help syntax: - fix excessive URL detection in help, because `file:{filename}` in doc/options.txt is determined to be a URL. - update highlighting N for :resize in help - split Italian-specific syntax into separate help script - highlight `Note` in parentheses in help - update 'titlestring' behaviour in documentation for invalid '%' format closes: vim/vim#15883 https://github.com/vim/vim/commit/6c2fc377bfbfb6f1a46b1061413cd21116b596ed Co-authored-by: Milly --- runtime/doc/builtin.txt | 2 +- runtime/doc/options.txt | 4 +++- runtime/lua/vim/_meta/options.lua | 4 +++- runtime/lua/vim/_meta/vimfn.lua | 2 +- runtime/syntax/help.vim | 17 ++++++----------- runtime/syntax/help_it.vim | 17 +++++++++++++++++ src/nvim/eval.lua | 2 +- src/nvim/options.lua | 4 +++- 8 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 runtime/syntax/help_it.vim diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index 1022565b87..1f1d7488e1 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -11705,7 +11705,7 @@ wildmenumode() *wildmenumode()* For example to make work like in wildmode, use: >vim cnoremap wildmenumode() ? "\\" : "\" < - (Note, this needs the 'wildcharm' option set appropriately). + (Note: this needs the 'wildcharm' option set appropriately). Return: ~ (`any`) diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 3a6f93ae01..5dc1643ee3 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -6763,7 +6763,9 @@ A jump table for the options with a short description can be found at |Q_op|. window. This happens only when the 'title' option is on. When this option contains printf-style '%' items, they will be - expanded according to the rules used for 'statusline'. + expanded according to the rules used for 'statusline'. If it contains + an invalid '%' format, the value is used as-is and no error or warning + will be given when the value is set. This option cannot be set in a modeline when 'modelineexpr' is off. Example: >vim diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index 36c0f583c7..c33753047f 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -7310,7 +7310,9 @@ vim.go.titleold = vim.o.titleold --- window. This happens only when the 'title' option is on. --- --- When this option contains printf-style '%' items, they will be ---- expanded according to the rules used for 'statusline'. +--- expanded according to the rules used for 'statusline'. If it contains +--- an invalid '%' format, the value is used as-is and no error or warning +--- will be given when the value is set. --- This option cannot be set in a modeline when 'modelineexpr' is off. --- --- Example: diff --git a/runtime/lua/vim/_meta/vimfn.lua b/runtime/lua/vim/_meta/vimfn.lua index de1937f620..d00bbe4770 100644 --- a/runtime/lua/vim/_meta/vimfn.lua +++ b/runtime/lua/vim/_meta/vimfn.lua @@ -10629,7 +10629,7 @@ function vim.fn.wait(timeout, condition, interval) end --- For example to make work like in wildmode, use: >vim --- cnoremap wildmenumode() ? "\\" : "\" --- < ---- (Note, this needs the 'wildcharm' option set appropriately). +--- (Note: this needs the 'wildcharm' option set appropriately). --- --- @return any function vim.fn.wildmenumode() end diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim index dc892a7d60..c8ad8bfe4a 100644 --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -53,6 +53,7 @@ else syn match helpIgnore "." contained endif syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes: +syn match helpNote "\c(note\(:\|\>\)"ms=s+1 syn keyword helpWarning WARNING WARNING: Warning: syn keyword helpDeprecated DEPRECATED DEPRECATED: Deprecated: syn match helpSpecial "\" @@ -65,6 +66,10 @@ syn match helpSpecial "\[N]" syn match helpSpecial "N N"he=s+1 syn match helpSpecial "Nth"me=e-2 syn match helpSpecial "N-1"me=e-2 +" highlighting N for :resize in windows.txt +syn match helpSpecial "] -N\>"ms=s+3 +syn match helpSpecial "+N\>"ms=s+1 +syn match helpSpecial "\[+-]N\>"ms=s+4 " highlighting N of cinoptions-values in indent.txt syn match helpSpecial "^\t-\?\zsNs\?\s"me=s+1 " highlighting N of cinoptions-values in indent.txt @@ -140,7 +145,7 @@ syn match helpUnderlined "\t[* ]Underlined\t\+[a-z].*" syn match helpError "\t[* ]Error\t\+[a-z].*" syn match helpTodo "\t[* ]Todo\t\+[a-z].*" -syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-zA-Z0-9/]` +syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^'" \t<>{}]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^'" \t<>{}]+)[a-zA-Z0-9/]` syn match helpDiffAdded "\t[* ]Added\t\+[a-z].*" syn match helpDiffChanged "\t[* ]Changed\t\+[a-z].*" @@ -152,16 +157,6 @@ if s:i > 0 exe "runtime syntax/help_" . strpart(expand("%"), s:i + 1, 2) . ".vim" endif -" Italian -if v:lang =~ '\' || v:lang =~ '_IT\>' || v:lang =~? "italian" - syn keyword helpNote nota Nota NOTA nota: Nota: NOTA: notare Notare NOTARE notare: Notare: NOTARE: - syn match helpSpecial "Nma"me=e-2 - syn match helpSpecial "Nme"me=e-2 - syn match helpSpecial "Nmi"me=e-2 - syn match helpSpecial "Nmo"me=e-2 - syn match helpSpecial "\[interv.]" -endif - syn sync minlines=40 diff --git a/runtime/syntax/help_it.vim b/runtime/syntax/help_it.vim new file mode 100644 index 0000000000..e76851d446 --- /dev/null +++ b/runtime/syntax/help_it.vim @@ -0,0 +1,17 @@ +" Vim syntax file +" Language: Italian Vim program help files *.itx +" Maintainer: The Vim Project +" Last Change: 2024 Oct 16 +" +" This script is sourced from syntax/help.vim. + +syn keyword helpNote nota Nota NOTA nota: Nota: NOTA: notare Notare NOTARE notare: Notare: NOTARE: +syn match helpNote "\c(nota\(:\|\>\)"ms=s+1 +syn match helpSpecial "Nma"me=e-2 +syn match helpSpecial "Nme"me=e-2 +syn match helpSpecial "Nmi"me=e-2 +syn match helpSpecial "Nmo"me=e-2 +syn match helpSpecial "\[interv.]" +syn region helpNotVi start="{non" start="{solo" start="{disponibile" end="}" contains=helpLeadBlank,helpHyperTextJump + +" vim: ts=8 sw=2 diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 351b9f0510..9572de471e 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -12768,7 +12768,7 @@ M.funcs = { For example to make work like in wildmode, use: >vim cnoremap wildmenumode() ? "\\" : "\" < - (Note, this needs the 'wildcharm' option set appropriately). + (Note: this needs the 'wildcharm' option set appropriately). ]=], name = 'wildmenumode', params = {}, diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 3c3eaaf5a1..fba5eab0bc 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -9130,7 +9130,9 @@ return { window. This happens only when the 'title' option is on. When this option contains printf-style '%' items, they will be - expanded according to the rules used for 'statusline'. + expanded according to the rules used for 'statusline'. If it contains + an invalid '%' format, the value is used as-is and no error or warning + will be given when the value is set. This option cannot be set in a modeline when 'modelineexpr' is off. Example: >vim