@@ -162,23 +162,23 @@ if !exists("g:no_plugin_maps") && !exists("g:no_ruby_maps")
162162 nmap <buffer> <script> <SID> : :<C-U>
163163 nmap <buffer> <script> <SID> c: :<C-U><C-R> =v:count ? v:count : ''<CR>
164164
165- nnoremap <silent> <buffer> [m :<C-U> call <SID> searchsyn('\<def\> ','rubyDefine','b','n')<CR>
166- nnoremap <silent> <buffer> ]m :<C-U> call <SID> searchsyn('\<def\> ','rubyDefine','','n')<CR>
167- nnoremap <silent> <buffer> [M :<C-U> call <SID> searchsyn('\<end\> ','rubyDefine','b','n')<CR>
168- nnoremap <silent> <buffer> ]M :<C-U> call <SID> searchsyn('\<end\> ','rubyDefine','','n')<CR>
169- xnoremap <silent> <buffer> [m :<C-U> call <SID> searchsyn('\<def\> ','rubyDefine','b','v')<CR>
170- xnoremap <silent> <buffer> ]m :<C-U> call <SID> searchsyn('\<def\> ','rubyDefine','','v')<CR>
171- xnoremap <silent> <buffer> [M :<C-U> call <SID> searchsyn('\<end\> ','rubyDefine','b','v')<CR>
172- xnoremap <silent> <buffer> ]M :<C-U> call <SID> searchsyn('\<end\> ','rubyDefine','','v')<CR>
173-
174- nnoremap <silent> <buffer> [[ :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>','rubyModule\ <Bar> rubyClass','b','n')<CR>
175- nnoremap <silent> <buffer> ]] :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>','rubyModule\ <Bar> rubyClass','','n')<CR>
176- nnoremap <silent> <buffer> [] :<C-U> call <SID> searchsyn('\<end\> ','rubyModule\ <Bar> rubyClass','b','n')<CR>
177- nnoremap <silent> <buffer> ][ :<C-U> call <SID> searchsyn('\<end\> ','rubyModule\ <Bar> rubyClass','','n')<CR>
178- xnoremap <silent> <buffer> [[ :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>','rubyModule\ <Bar> rubyClass','b','v')<CR>
179- xnoremap <silent> <buffer> ]] :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>','rubyModule\ <Bar> rubyClass','','v')<CR>
180- xnoremap <silent> <buffer> [] :<C-U> call <SID> searchsyn('\<end\> ','rubyModule\ <Bar> rubyClass','b','v')<CR>
181- xnoremap <silent> <buffer> ][ :<C-U> call <SID> searchsyn('\<end\> ','rubyModule\ <Bar> rubyClass','','v')<CR>
165+ nnoremap <silent> <buffer> [m :<C-U> call <SID> searchsyn('\<def\> ',[ 'rubyDefine'] ,'b','n')<CR>
166+ nnoremap <silent> <buffer> ]m :<C-U> call <SID> searchsyn('\<def\> ',[ 'rubyDefine'] ,'','n')<CR>
167+ nnoremap <silent> <buffer> [M :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyDefine'] ,'b','n')<CR>
168+ nnoremap <silent> <buffer> ]M :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyDefine'] ,'','n')<CR>
169+ xnoremap <silent> <buffer> [m :<C-U> call <SID> searchsyn('\<def\> ',[ 'rubyDefine'] ,'b','v')<CR>
170+ xnoremap <silent> <buffer> ]m :<C-U> call <SID> searchsyn('\<def\> ',[ 'rubyDefine'] ,'','v')<CR>
171+ xnoremap <silent> <buffer> [M :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyDefine'] ,'b','v')<CR>
172+ xnoremap <silent> <buffer> ]M :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyDefine'] ,'','v')<CR>
173+
174+ nnoremap <silent> <buffer> [[ :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>',[ 'rubyModule',' rubyClass'] ,'b','n')<CR>
175+ nnoremap <silent> <buffer> ]] :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>',[ 'rubyModule',' rubyClass'] ,'','n')<CR>
176+ nnoremap <silent> <buffer> [] :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyModule',' rubyClass'] ,'b','n')<CR>
177+ nnoremap <silent> <buffer> ][ :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyModule',' rubyClass'] ,'','n')<CR>
178+ xnoremap <silent> <buffer> [[ :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>',[ 'rubyModule',' rubyClass'] ,'b','v')<CR>
179+ xnoremap <silent> <buffer> ]] :<C-U> call <SID> searchsyn('\<\%(class\<Bar> module\)\>',[ 'rubyModule',' rubyClass'] ,'','v')<CR>
180+ xnoremap <silent> <buffer> [] :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyModule',' rubyClass'] ,'b','v')<CR>
181+ xnoremap <silent> <buffer> ][ :<C-U> call <SID> searchsyn('\<end\> ',[ 'rubyModule',' rubyClass'] ,'','v')<CR>
182182
183183 let b: undo_ftplugin = b: undo_ftplugin
184184 \. " | sil! exe 'unmap <buffer> [[' | sil! exe 'unmap <buffer> ]]' | sil! exe 'unmap <buffer> []' | sil! exe 'unmap <buffer> ]['"
@@ -288,12 +288,13 @@ function! s:searchsyn(pattern, syn, flags, mode) abort
288288 norm! gv
289289 endif
290290 let i = 0
291+ call map (a: syn , ' hlID(v:val)' )
291292 while i < cnt
292293 let i = i + 1
293294 let line = line (' .' )
294295 let col = col (' .' )
295296 let pos = search (a: pattern ,' W' .a: flags )
296- while pos != 0 && s: synname () !~# a: syn
297+ while pos != 0 && index ( a: syn , s: synid ()) < 0
297298 let pos = search (a: pattern ,' W' .a: flags )
298299 endwhile
299300 if pos == 0
@@ -303,8 +304,8 @@ function! s:searchsyn(pattern, syn, flags, mode) abort
303304 endwhile
304305endfunction
305306
306- function ! s: synname () abort
307- return synIDattr ( synID (line (' .' ),col (' .' ),0 ), ' name ' )
307+ function ! s: synid () abort
308+ return synID (line (' .' ),col (' .' ),0 )
308309endfunction
309310
310311function ! s: wrap_i (back,forward) abort
@@ -360,7 +361,7 @@ function! RubyCursorFile() abort
360361 let pre = matchstr (strpart (getline (' .' ), 0 , col (' .' )-1 ), ' .*\f\@<!' )
361362 let post = matchstr (strpart (getline (' .' ), col (' .' )), ' \f\@!.*' )
362363 let ext = getline (' .' ) = ~# ' ^\s*\%(require\%(_relative\)\=\|autoload\)\>' && cfile !~# ' \.rb$' ? ' .rb' : ' '
363- if s: synname () == # ' rubyConstant'
364+ if s: synid () == # hlID ( ' rubyConstant' )
364365 let cfile = substitute (cfile ,' \.\w\+[?!=]\=$' ,' ' ,' ' )
365366 let cfile = substitute (cfile ,' ::' ,' /' ,' g' )
366367 let cfile = substitute (cfile ,' \(\u\+\)\(\u\l\)' ,' \1_\2' , ' g' )
0 commit comments