patch 9.1.0770: current command line completion is a bit limited
Problem: current command completion is a bit limited
Solution: Add the shellcmdline completion type and getmdcomplpat()
function (Ruslan Russkikh).
closes: #15823
Signed-off-by: Ruslan Russkikh <dvrussk@yandex.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index fe0b9aa..880dfcd 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 9.1. Last change: 2024 Sep 23
+*builtin.txt* For Vim version 9.1. Last change: 2024 Oct 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -230,6 +230,8 @@
getcharpos({expr}) List position of cursor, mark, etc.
getcharsearch() Dict last character search
getcharstr([{expr}]) String get one character from the user
+getcmdcomplpat() String return the completion pattern of the
+ current command-line completion
getcmdcompltype() String return the type of the current
command-line completion
getcmdline() String return the current command-line input
@@ -3973,6 +3975,16 @@
Return type: |String|
+getcmdcomplpat() *getcmdcomplpat()*
+ Return completion pattern of the current command-line.
+ Only works when the command line is being edited, thus
+ requires use of |c_CTRL-\_e| or |c_CTRL-R_=|.
+ Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|,
+ |getcmdprompt()|, |getcmdcompltype()| and |setcmdline()|.
+ Returns an empty string when completion is not defined.
+
+ Return type: |String|
+
getcmdcompltype() *getcmdcompltype()*
Return the type of the current command-line completion.
@@ -3980,7 +3992,7 @@
requires use of |c_CTRL-\_e| or |c_CTRL-R_=|.
See |:command-completion| for the return string.
Also see |getcmdtype()|, |setcmdpos()|, |getcmdline()|,
- |getcmdprompt()| and |setcmdline()|.
+ |getcmdprompt()|, |getcmdcomplpat()| and |setcmdline()|.
Returns an empty string when completion is not defined.
Return type: |String|
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 2773140..899b24b 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 9.1. Last change: 2024 Oct 07
+*map.txt* For Vim version 9.1. Last change: 2024 Oct 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1657,6 +1657,8 @@
-complete=runtime file and directory names in |'runtimepath'|
-complete=scriptnames sourced script names
-complete=shellcmd Shell command
+ -complete=shellcmdline First is a shell command and subsequent ones
+ are filenames. The same behavior as |:!cmd|
-complete=sign |:sign| suboptions
-complete=syntax syntax file names |'syntax'|
-complete=syntime |:syntime| suboptions
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 42c7c64..246ea96 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -7827,6 +7827,7 @@
getcharpos() builtin.txt /*getcharpos()*
getcharsearch() builtin.txt /*getcharsearch()*
getcharstr() builtin.txt /*getcharstr()*
+getcmdcomplpat() builtin.txt /*getcmdcomplpat()*
getcmdcompltype() builtin.txt /*getcmdcompltype()*
getcmdline() builtin.txt /*getcmdline()*
getcmdpos() builtin.txt /*getcmdpos()*
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 123dcbb..af67429 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1068,6 +1068,8 @@
swapname() get the swap file path of a buffer
Command line: *command-line-functions*
+ getcmdcomplpat() get completion pattern of the current command
+ line
getcmdcompltype() get the type of the current command line
completion
getcmdline() get the current command line input
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 56bb7e2..a943433 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 9.1. Last change: 2024 Oct 05
+*version9.txt* For Vim version 9.1. Last change: 2024 Oct 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41589,6 +41589,8 @@
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
add the "cd_in_path" completion type for e.g. |:command-complete| and
|getcompletion()|
+- allow to complete shell commands and files using the new shellcmdline
+ completion type using |:command-complete| and |getcmdcomplpat()|
- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
behaviour/inconsistency (see |d-special| and |cw|).
- allow to specify additional attributes in the completion menu (allows to
@@ -41608,6 +41610,7 @@
|diff()| diff two Lists of strings
|filecopy()| copy a file {from} to {to}
|foreach()| apply function to List items
+|getcmdcomplpat()| Shell command line completion
|getcmdprompt()| get prompt for input()/confirm()
|getregion()| get a region of text from a buffer
|getregionpos()| get a list of positions for a region