aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2024-11-04 21:54:34 +0100
committerChristian Clason <ch.clason+github@icloud.com>2024-11-05 08:31:19 +0100
commitbaf74ef9755e19781f52c3884023321c0198a3b5 (patch)
tree8525e210aceaec222ca8b9631b9446714a5a74db
parentfc8e786dae255b8ed63f57e4ae2cd85addbee7b9 (diff)
downloadrneovim-baf74ef9755e19781f52c3884023321c0198a3b5.tar.gz
rneovim-baf74ef9755e19781f52c3884023321c0198a3b5.tar.bz2
rneovim-baf74ef9755e19781f52c3884023321c0198a3b5.zip
vim-patch:59834ba: runtime(matchparen): Add matchparen_disable_cursor_hl config option
Set the "matchparen_disable_cursor_hl" config variable to disable highlighting the cursor with the MatchParen highlighting group. closes: vim/vim#15984 https://github.com/vim/vim/commit/59834ba6df10dc48565bf55ac6c8e8a4aa40210b Co-authored-by: Matteo Landi <matteo@matteolandi.net>
-rw-r--r--runtime/doc/pi_paren.txt19
-rw-r--r--runtime/plugin/matchparen.vim17
2 files changed, 29 insertions, 7 deletions
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index 77083362da..caa88e8d56 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -10,6 +10,7 @@ The functionality mentioned here is a |standard-plugin|.
This plugin is only available if 'compatible' is not set.
You can avoid loading this plugin by setting the "loaded_matchparen" variable: >
+
:let loaded_matchparen = 1
The plugin installs CursorMoved, CursorMovedI and WinEnter autocommands to
@@ -29,6 +30,16 @@ the ":highlight" command. Example: >
:hi MatchParen ctermbg=blue guibg=lightblue
+By default the plugin will highlight both the paren under the cursor and the
+matching one using the |hl-MatchParen| highlighting group. This may result in
+the cursor briefly disappearing from the screen as the MatchParen colors take
+over the cursor highlight. To prevent this from happening and have the plugin
+only highlight the matching paren and not the one under the cursor
+(effectively leaving the cursor style unchanged), you can set the
+"matchparen_disable_cursor_hl" variable: >
+
+ :let matchparen_disable_cursor_hl = 1
+
The characters to be matched come from the 'matchpairs' option. You can
change the value to highlight different matches. Note that not everything is
possible. For example, you can't highlight single or double quotes, because
@@ -46,10 +57,10 @@ are:
closed folds.
- 'synmaxcol' times 2 bytes before or after the cursor to avoid a delay
in a long line with syntax highlighting.
-- A timeout of 300 msec (60 msec in Insert mode). This can be changed with the
- g:matchparen_timeout and g:matchparen_insert_timeout variables and their
- buffer-local equivalents b:matchparen_timeout and
- b:matchparen_insert_timeout.
+- A timeout of 300 msec (60 msec in Insert mode). This can be changed with
+ the "g:matchparen_timeout" and "g:matchparen_insert_timeout" variables and
+ their buffer-local equivalents "b:matchparen_timeout" and
+ "b:matchparen_insert_timeout".
If you would like the |%| command to work better, the |matchit| plugin can be
used. This plugin also helps to skip matches in comments. This is unrelated
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 2899612dce..661a34b578 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -17,6 +17,9 @@ endif
if !exists("g:matchparen_insert_timeout")
let g:matchparen_insert_timeout = 60
endif
+if !exists("g:matchparen_disable_cursor_hl")
+ let g:matchparen_disable_cursor_hl = 0
+endif
let s:has_matchaddpos = exists('*matchaddpos')
@@ -189,10 +192,18 @@ func s:Highlight_Matching_Pair()
" If a match is found setup match highlighting.
if m_lnum > 0 && m_lnum >= stoplinetop && m_lnum <= stoplinebottom
if s:has_matchaddpos
- call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10))
+ if !g:matchparen_disable_cursor_hl
+ call add(w:matchparen_ids, matchaddpos('MatchParen', [[c_lnum, c_col - before], [m_lnum, m_col]], 10))
+ else
+ call add(w:matchparen_ids, matchaddpos('MatchParen', [[m_lnum, m_col]], 10))
+ endif
else
- exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
- \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
+ if !g:matchparen_disable_cursor_hl
+ exe '3match MatchParen /\(\%' . c_lnum . 'l\%' . (c_col - before) .
+ \ 'c\)\|\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
+ else
+ exe '3match MatchParen /\(\%' . m_lnum . 'l\%' . m_col . 'c\)/'
+ endif
call add(w:matchparen_ids, 3)
endif
let w:paren_hl_on = 1