@@ -2031,15 +2031,12 @@ function! s:RailsIncludefind(str,...)
20312031 elseif line = ~# ' \<def\s\+' && expand (" %:t" ) = ~# ' _controller\.rb'
20322032 let str = s: sub (s: sub (RailsFilePath (),' /controllers/' ,' /views/' ),' _controller\.rb$' ,' /' .str)
20332033 " 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 )
20392036 let str .= ' .' .t
20402037 break
20412038 endif
2042- endwhile
2039+ endfor
20432040 elseif str = ~# ' _\%(path\|url\)$' || (line = ~# ' :as\s*=>\s*$' && RailsFileType () = ~# ' ^config-routes\>' )
20442041 if line !~# ' :as\s*=>\s*$'
20452042 let str = s: sub (str,' _%(path|url)$' ,' ' )
@@ -2550,42 +2547,27 @@ function! s:viewEdit(cmd,...)
25502547endfunction
25512548
25522549function ! 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 )
25592555 if controller != ' '
2560- let c = controller.' /' .c
2556+ let name = controller.' /' .name
25612557 endif
25622558 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
25692561 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
25792566 endif
2580- endwhile
2581- if format == ' ' || file != ' '
2582- break
2583- else
2584- let format = ' '
2585- endif
2586- endwhile
2567+ endfor
2568+ endfor
25872569 endif
2588- return file
2570+ return ' '
25892571endfunction
25902572
25912573function ! s: findlayout (name)
0 commit comments