changeset 33213:d84610677553

runtime(perl): Update ftplugin and indent files (#13052) Commit: https://github.com/vim/vim/commit/4e554d282c50e428932df5fff9917f8a836f7782 Author: dkearns <dougkearns@gmail.com> Date: Sat Sep 9 03:16:03 2023 +1000 runtime(perl): Update ftplugin and indent files (https://github.com/vim/vim/issues/13052) Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Fri, 08 Sep 2023 19:30:05 +0200
parents a0193a5c7875
children 39bc126cc890
files runtime/ftplugin/perl.vim runtime/ftplugin/pod.vim runtime/indent/perl.vim
diffstat 3 files changed, 22 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -5,6 +5,8 @@
 " Bugs/requests: https://github.com/vim-perl/vim-perl/issues
 " License:       Vim License (see :help license)
 " Last Change:   2021 Nov 10
+"                2023 Sep 07 by Vim Project (safety check: don't execute perl
+"                    from current directory)
 
 if exists("b:did_ftplugin") | finish | endif
 let b:did_ftplugin = 1
--- a/runtime/ftplugin/pod.vim
+++ b/runtime/ftplugin/pod.vim
@@ -5,11 +5,12 @@
 " Homepage:      https://github.com/vim-perl/vim-perl
 " Bugs/requests: https://github.com/vim-perl/vim-perl/issues
 " License:       Vim License (see :help license)
-" Last Change:   2021 Oct 19
+" Last Change:   2023 Jul 05
 
 if exists("b:did_ftplugin")
-    finish
+  finish
 endif
+let b:did_ftplugin = 1
 
 let s:save_cpo = &cpo
 set cpo-=C
@@ -37,12 +38,12 @@ if (has("gui_win32") || has("gui_gtk")) 
   let b:undo_ftplugin .= " | unlet! b:browsefilter"
 endif
 
-function! s:jumpToSection(backwards)
-  let flags = a:backwards ? 'bsWz' : 'sWz'
-  if has('syntax_items')
+function s:jumpToSection(direction)
+  let flags = a:direction == "backward" ? "bsWz" : "sWz"
+  if has("syntax_items")
     let skip = "synIDattr(synID(line('.'), col('.'), 1), 'name') !~# '\\<podCommand\\>'"
   else
-    let skip = ''
+    let skip = ""
   endif
   for i in range(v:count1)
     call search('^=\a', flags, 0, 0, skip)
@@ -50,19 +51,17 @@ function! s:jumpToSection(backwards)
 endfunction
 
 if !exists("no_plugin_maps") && !exists("no_pod_maps")
-  nnoremap <silent> <buffer> ]] <Cmd>call <SID>jumpToSection()<CR>
-  vnoremap <silent> <buffer> ]] <Cmd>call <SID>jumpToSection()<CR>
-  nnoremap <silent> <buffer> ][ <Cmd>call <SID>jumpToSection()<CR>
-  vnoremap <silent> <buffer> ][ <Cmd>call <SID>jumpToSection()<CR>
-  nnoremap <silent> <buffer> [[ <Cmd>call <SID>jumpToSection(1)<CR>
-  vnoremap <silent> <buffer> [[ <Cmd>call <SID>jumpToSection(1)<CR>
-  nnoremap <silent> <buffer> [] <Cmd>call <SID>jumpToSection(1)<CR>
-  vnoremap <silent> <buffer> [] <Cmd>call <SID>jumpToSection(1)<CR>
-  let b:undo_ftplugin .=
-        \ " | silent! exe 'nunmap <buffer> ]]' | silent! exe 'vunmap <buffer> ]]'" .
-        \ " | silent! exe 'nunmap <buffer> ][' | silent! exe 'vunmap <buffer> ]['" .
-        \ " | silent! exe 'nunmap <buffer> ]]' | silent! exe 'vunmap <buffer> ]]'" .
-        \ " | silent! exe 'nunmap <buffer> []' | silent! exe 'vunmap <buffer> []'"
+  for s:mode in ["n", "o", "x"]
+    for s:lhs in ["]]", "]["]
+      execute s:mode . "noremap <silent> <buffer> " . s:lhs . " <Cmd>call <SID>jumpToSection('forward')<CR>"
+      let b:undo_ftplugin .= " | silent! execute '" . s:mode . "unmap <buffer> " . s:lhs . "'"
+    endfor
+    for s:lhs in ["[[", "[]"]
+      execute s:mode . "noremap <silent> <buffer> " . s:lhs . " <Cmd>call <SID>jumpToSection('backward')<CR>"
+      let b:undo_ftplugin .= " | silent! execute '" . s:mode . "unmap <buffer> " . s:lhs . "'"
+    endfor
+  endfor
+  unlet s:mode s:lhs
 endif
 
 let &cpo = s:save_cpo
--- a/runtime/indent/perl.vim
+++ b/runtime/indent/perl.vim
@@ -4,7 +4,7 @@
 " Homepage:      https://github.com/vim-perl/vim-perl
 " Bugs/requests: https://github.com/vim-perl/vim-perl/issues
 " License:       Vim License (see :help license)
-" Last Change:   2021 Sep 24
+" Last Change:   2022 Jun 14
 
 " Suggestions and improvements by :
 "   Aaron J. Sherman (use syntax for hints)
@@ -133,6 +133,7 @@ function! GetPerlIndent()
                         \ || synid == "perlHereDoc"
                         \ || synid == "perlBraces"
                         \ || synid == "perlStatementIndirObj"
+                        \ || synid == "perlSubDeclaration"
                         \ || synid =~ "^perlFiledescStatement"
                         \ || synid =~ '^perl\(Sub\|Block\|Package\)Fold'
                 let brace = strpart(line, bracepos, 1)