Skip to content

Commit d556429

Browse files
committed
Don't force .rb extension for gf on string
References tpope#85
1 parent 680ac8f commit d556429

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

autoload/rails.vim

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2628,9 +2628,10 @@ function! s:ruby_cfile() abort
26282628
endif
26292629

26302630
let synid = synID(line('.'), col('.'), 1)
2631+
let synstring = synid == hlID('rubyString') || synid == hlID('rubyBackslashEscape')
26312632
let old_isfname = &isfname
26322633
try
2633-
if synid == hlID('rubyString')
2634+
if synstring
26342635
set isfname+=:
26352636
let cfile = expand("<cfile>")
26362637
else
@@ -2649,9 +2650,9 @@ function! s:ruby_cfile() abort
26492650
let cfile = s:sub(cfile, ':0x\x+$', '') " For #<Object:0x...> style output
26502651
if cfile =~# '^\l\w*#\w\+$'
26512652
let cfile = s:sub(cfile, '#', '_controller.rb#')
2652-
elseif cfile =~# '\u'
2653+
elseif cfile =~# '^\u[[:alnum:]]*\%($\|::\)'
26532654
let cfile = s:file_for_nested_constant(cfile)
2654-
elseif cfile =~# '^\w*_\%(path\|url\)$' && synid != hlID('rubyString')
2655+
elseif cfile =~# '^\w*_\%(path\|url\)$' && !synstring
26552656
let route = s:gsub(cfile, '^hash_for_|_%(path|url)$', '')
26562657
let cfile = s:active() ? rails#app().named_route_file(route) : ''
26572658
if empty(cfile)
@@ -2664,7 +2665,7 @@ function! s:ruby_cfile() abort
26642665
let cfile = cfile.'_controller.rb#index'
26652666
endif
26662667
endif
2667-
elseif cfile !~# '\.'
2668+
elseif cfile !~# '\.' && !synstring
26682669
let cfile .= '.rb'
26692670
endif
26702671
return cfile

0 commit comments

Comments
 (0)