runtime(erlang): add support for matchit plugin (#13713)

Commit: 
https://github.com/vim/vim/commit/18ab6c3392ef83abf078042e233d085fe80b6c06
Author: Csaba Hoch <[email protected]>
Date:   Thu Dec 21 17:16:28 2023 +0100

    runtime(erlang): add support for matchit plugin 
(https://github.com/vim/vim/issues/13713)
    
    This commit updates the Erlang runtime files to be in sync with the
    `vim-erlang-runtime` repository. In particular, it adds the following
    commit (with some cleanup and simplification afterwards):
    
https://github.com/vim-erlang/vim-erlang-runtime/commit/6ea8b85bc9c93b94c68ec53489a74f5687d898b0
    
    Signed-off-by: Csaba Hoch <[email protected]>
    Signed-off-by: Doug Kearns <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/ftplugin/erlang.vim b/runtime/ftplugin/erlang.vim
index 31fa0c321..1cb57f4c8 100644
--- a/runtime/ftplugin/erlang.vim
+++ b/runtime/ftplugin/erlang.vim
@@ -5,7 +5,8 @@
 " Contributors: Ricardo Catalinas Jim茅nez <[email protected]>
 "               Eduardo Lopez (http://github.com/tapichu)
 "               Arvid Bjurklint (http://github.com/slarwise)
-" Last Update:  2021-Nov-22
+"               Pawe艂 Zacharek (http://github.com/subc2)
+" Last Update:  2023-Dec-20
 " License:      Vim license
 " URL:          https://github.com/vim-erlang/vim-erlang-runtime
 
@@ -57,7 +58,7 @@ setlocal suffixesadd=.erl,.hrl
 let &l:include = '^\s*-\%(include\|include_lib\)\s*("\zs *\ze")'
 let &l:define  = '^\s*-\%(define\|record\|type\|opaque\)'
 
-let s:erlang_fun_begin = '^ \w*(.*$'
+let s:erlang_fun_begin = '^\l[A-Za-z0-9_@]*(.*$'
 let s:erlang_fun_end   = '^[^%]*\.\s*\(%.*\)\?$'
 
 if !exists('*GetErlangFold')
@@ -95,9 +96,22 @@ if !exists('*ErlangFoldText')
   endfunction
 endif
 
+" The following lines enable the macros/matchit.vim plugin for extended
+" matching with the % key.
+let b:match_ignorecase = 0
+let b:match_words =
+  \ '\<\%(begin\|case\|fun\|if\|maybe\|receive\|try\)\>' .
+  \ ':\<\%(after\|catch\|else\|of\)\>' .
+  \ ':\<end\>,' .
+  \ '^\l[A-Za-z0-9_@]*' .
+  \ ':^\%(\%(  \| \{' . shiftwidth() .
+  \ '}\)\%([^  \ %][^%]*\)\?\)\?;\s*\%(%.*\)\?$\|\.[   \ %]\|\.$'
+let b:match_skip = 's:comment\|string\|erlangmodifier\|erlangquotedatom'
+
 let b:undo_ftplugin = "setlocal keywordprg< foldmethod< foldexpr< foldtext<"
       \ . " comments< commentstring< formatoptions< suffixesadd< include<"
       \ . " define<"
+      \ . " | unlet b:match_ignorecase b:match_words b:match_skip"
 
 let &cpo = s:cpo_save
 unlet s:cpo_save

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1rGLvw-006jJm-BY%40256bit.org.

Raspunde prin e-mail lui