From bad9577b9ae7a6ab61ec636aaa1ed7d446ef5db9 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Fri, 31 May 2024 14:58:26 +0200 Subject: runtime(doc): include some vim9 script examples in the help closes: #14848 Signed-off-by: Christian Brabandt --- runtime/doc/tags | 1 + runtime/doc/usr_52.txt | 43 ++++++++++++++++++++++++++++++++++++++++++- runtime/doc/vim9.txt | 3 ++- 3 files changed, 45 insertions(+), 2 deletions(-) (limited to 'runtime/doc') diff --git a/runtime/doc/tags b/runtime/doc/tags index 1eeed4fcc9..73aefe1cef 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2015,6 +2015,7 @@ $quote eval.txt /*$quote* 52.3 usr_52.txt /*52.3* 52.4 usr_52.txt /*52.4* 52.5 usr_52.txt /*52.5* +52.6 usr_52.txt /*52.6* 8g8 various.txt /*8g8* 90.1 usr_90.txt /*90.1* 90.2 usr_90.txt /*90.2* diff --git a/runtime/doc/usr_52.txt b/runtime/doc/usr_52.txt index 8607cf9daa..553ed88cf3 100644 --- a/runtime/doc/usr_52.txt +++ b/runtime/doc/usr_52.txt @@ -1,4 +1,4 @@ -*usr_52.txt* For Vim version 9.1. Last change: 2024 May 16 +*usr_52.txt* For Vim version 9.1. Last change: 2024 May 31 VIM USER MANUAL - by Bram Moolenaar @@ -13,6 +13,7 @@ smaller parts. |52.3| Autoloading without import/export |52.4| Other mechanisms to use |52.5| Using a Vim9 script from legacy script +|52.6| Vim9 script examples: comment package, highlight-yank plugin Next chapter: |usr_90.txt| Installing Vim Previous chapter: |usr_51.txt| Create a plugin @@ -336,6 +337,46 @@ will have to make sure to use a unique name for these global items. Example: > call g:NicePluginTest() ============================================================================== +*52.6* Vim9 script examples: comment package, highlight-yank plugin + +COMMENT PACKAGE + +Vim comes with a comment plugin, written in Vim9 script |comment-install|. +Have a look at the package located at $VIMRUNTIME/pack/dist/opt/comment/ + +HIGHLIGHT YANK PLUGIN + +Here is an example for highlighting the yanked region. It makes use of the +|getregionpos()| function, available since Vim 9.1.0446. + +Copy the following example into a new file and place it into your plugin directory +and it will be active next time you start Vim |add-plugin|: > + + vim9script + + def HighlightedYank(hlgroup = 'IncSearch', duration = 300, in_visual = true) + if v:event.operator ==? 'y' + if !in_visual && visualmode() != null_string + visualmode(1) + return + endif + var [beg, end] = [getpos("'["), getpos("']")] + var type = v:event.regtype ?? 'v' + var pos = getregionpos(beg, end, {type: type}) + var end_offset = (type == 'V' || v:event.inclusive) ? 1 : 0 + var m = matchaddpos(hlgroup, pos->mapnew((_, v) => { + var col_beg = v[0][2] + v[0][3] + var col_end = v[1][2] + v[1][3] + end_offset + return [v[0][1], col_beg, col_end - col_beg] + })) + var winid = win_getid() + timer_start(duration, (_) => m->matchdelete(winid)) + endif + enddef + + autocmd TextYankPost * HighlightedYank() +< +============================================================================== Next chapter: |usr_90.txt| Installing Vim diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt index 7a49aa0826..68e5d997ff 100644 --- a/runtime/doc/vim9.txt +++ b/runtime/doc/vim9.txt @@ -1,4 +1,4 @@ -*vim9.txt* For Vim version 9.1. Last change: 2024 Apr 13 +*vim9.txt* For Vim version 9.1. Last change: 2024 May 31 VIM REFERENCE MANUAL by Bram Moolenaar @@ -67,6 +67,7 @@ rewrite old scripts, they keep working as before. You may want to use a few Note that {cmd} cannot use local variables, since it is parsed with legacy expression syntax. +See some examples of Vim9 script at |52.6|. ============================================================================== 2. Differences from legacy Vim script *vim9-differences* -- cgit v1.2.3