runtime(nohlsearch): include the the simple nohlsearch package

fixes: #15039
closes: #15042

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 183806a..4351944 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 9.1.  Last change: 2024 Jun 03
+*pattern.txt*   For Vim version 9.1.  Last change: 2024 Jun 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -151,13 +151,17 @@
 			executing autocommands |autocmd-searchpat|.
 			Same thing for when invoking a user function.
 
+
 While typing the search pattern the current match will be shown if the
 'incsearch' option is on.  Remember that you still have to finish the search
 command with <CR> to actually position the cursor at the displayed match.  Or
 use <Esc> to abandon the search.
 
+							*nohlsearch-auto*
 All matches for the last used search pattern will be highlighted if you set
-the 'hlsearch' option.  This can be suspended with the |:nohlsearch| command.
+the 'hlsearch' option.  This can be suspended with the |:nohlsearch| command
+or auto suspended with nohlsearch plugin.  See |nohlsearch-install|.
+
 
 When 'shortmess' does not include the "S" flag, Vim will automatically show an
 index, on which the cursor is. This can look like this: >
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 794fa0c..56385a8 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -9178,6 +9178,8 @@
 no_mail_maps	filetype.txt	/*no_mail_maps*
 no_plugin_maps	filetype.txt	/*no_plugin_maps*
 nocombine	syntax.txt	/*nocombine*
+nohlsearch-auto	pattern.txt	/*nohlsearch-auto*
+nohlsearch-install	usr_05.txt	/*nohlsearch-install*
 non-greedy	pattern.txt	/*non-greedy*
 non-zero-arg	eval.txt	/*non-zero-arg*
 none-function_argument	userfunc.txt	/*none-function_argument*
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index a9e8fb9..5065e45 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 9.1.  Last change: 2024 May 17
+*usr_05.txt*	For Vim version 9.1.  Last change: 2024 Jun 18
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -440,7 +440,7 @@
 Adding comment package					*comment-install*
 
 Load the plugin with this command: >
-    packadd comment
+	packadd comment
 <
 This way you can use the plugin with the default key bindings `gc` and similar
 for commenting (which is a well-established mapping in the Vim community).
@@ -449,6 +449,21 @@
 the package loaded. Once the package is loaded, read about it at: >
 	:h comment.txt
 
+
+Adding nohlsearch package				*nohlsearch-install*
+
+Load the plugin with this command: >
+	packadd nohlsearch
+<
+Automatically execute |:nohlsearch| after 'updatetime' or getting into |Insert| mode.
+Thus assuming default updatetime, hlsearch would be suspended/turned off after
+4 seconds of idle time.
+
+To disable the effect of the plugin after is has been loaded: >
+	au! nohlsearch
+<
+
+
 More information about packages can be found here: |packages|.
 
 ==============================================================================
diff --git a/runtime/pack/dist/opt/nohlsearch/plugin/nohlsearch.vim b/runtime/pack/dist/opt/nohlsearch/plugin/nohlsearch.vim
new file mode 100644
index 0000000..6cfe813
--- /dev/null
+++ b/runtime/pack/dist/opt/nohlsearch/plugin/nohlsearch.vim
@@ -0,0 +1,14 @@
+" nohlsearch.vim: Auto turn off hlsearch
+" Last Change: 2024-06-18
+" Maintainer: Maxim Kim <habamax@gmail.com>
+"
+" turn off hlsearch after:
+" - doing nothing for 'updatetime'
+" - getting into insert mode
+augroup nohlsearch
+    au!
+    noremap <Plug>(nohlsearch) <cmd>nohlsearch<cr>
+    noremap! <expr> <Plug>(nohlsearch) execute('nohlsearch')[-1]
+    au CursorHold * call feedkeys("\<Plug>(nohlsearch)", 'm')
+    au InsertEnter * call feedkeys("\<Plug>(nohlsearch)", 'm')
+augroup END