@@ -2031,15 +2031,12 @@ function! s:RailsIncludefind(str,...)
2031
2031
elseif line = ~# ' \<def\s\+' && expand (" %:t" ) = ~# ' _controller\.rb'
2032
2032
let str = s: sub (s: sub (RailsFilePath (),' /controllers/' ,' /views/' ),' _controller\.rb$' ,' /' .str)
2033
2033
" FIXME: support nested extensions
2034
- let vt = s: view_types ." ,"
2035
- while vt != " "
2036
- let t = matchstr (vt,' [^,]*' )
2037
- let vt = s: sub (vt,' [^,]*,' ,' ' )
2038
- if filereadable (str." ." .t )
2034
+ for t in split (s: view_types ,' ,' )
2035
+ if filereadable (str.format.' .' .t )
2039
2036
let str .= ' .' .t
2040
2037
break
2041
2038
endif
2042
- endwhile
2039
+ endfor
2043
2040
elseif str = ~# ' _\%(path\|url\)$' || (line = ~# ' :as\s*=>\s*$' && RailsFileType () = ~# ' ^config-routes\>' )
2044
2041
if line !~# ' :as\s*=>\s*$'
2045
2042
let str = s: sub (str,' _%(path|url)$' ,' ' )
@@ -2550,42 +2547,27 @@ function! s:viewEdit(cmd,...)
2550
2547
endfunction
2551
2548
2552
2549
function ! s: findview (name)
2553
- " TODO: full support of nested extensions
2554
- let c = a: name
2555
- let pre = " app/views/"
2556
- let file = " "
2557
- if c !~ ' /'
2558
- let controller = s: controller (1 )
2550
+ let self = rails#buffer ()
2551
+ let name = a: name
2552
+ let pre = ' app/views/'
2553
+ if name !~# ' /'
2554
+ let controller = self .controller_name (1 )
2559
2555
if controller != ' '
2560
- let c = controller.' /' .c
2556
+ let name = controller.' /' .name
2561
2557
endif
2562
2558
endif
2563
- if c = ~ ' \.\w\+\.\w\+$' || c = ~ ' \.' .s: viewspattern ().' $'
2564
- return pre .c
2565
- elseif rails#app ().has_file (pre .c ." .rhtml" )
2566
- let file = pre .c ." .rhtml"
2567
- elseif rails#app ().has_file (pre .c ." .rxml" )
2568
- let file = pre .c ." .rxml"
2559
+ if name = ~# ' \.\w\+\.\w\+$' || name = ~# ' \.' .s: viewspattern ().' $'
2560
+ return pre .name
2569
2561
else
2570
- let format = " ." . s: format (' html' )
2571
- let vt = s: view_types ." ,"
2572
- while 1
2573
- while vt != " "
2574
- let t = matchstr (vt,' [^,]*' )
2575
- let vt = s: sub (vt,' [^,]*,' ,' ' )
2576
- if rails#app ().has_file (pre .c .format." ." .t )
2577
- let file = pre .c .format." ." .t
2578
- break
2562
+ for format in [' .' .self .format (' html' ), ' ' ]
2563
+ for type in split (s: view_types ,' ,' )
2564
+ if self .app ().has_file (pre .name.format.' .' .type )
2565
+ return pre .name.format.' .' .type
2579
2566
endif
2580
- endwhile
2581
- if format == ' ' || file != ' '
2582
- break
2583
- else
2584
- let format = ' '
2585
- endif
2586
- endwhile
2567
+ endfor
2568
+ endfor
2587
2569
endif
2588
- return file
2570
+ return ' '
2589
2571
endfunction
2590
2572
2591
2573
function ! s: findlayout (name)
0 commit comments