Взлом rails.vim для работы с Padrino

Недавно я клонировал rails.vim (vim-rails) в надежде изменить его для работы с проектами Padrino.

В настоящее время я пытаюсь заставить команду Rcontroller искать не только в приложениях / контроллерах (идеально для рельсов), но и в любой папке проекта, в которой есть подпапка с названием «контроллеры». . Поэтому, когда я набираю Rcontroller в командном режиме и нажимаю вкладку, у меня должна быть возможность перейти через admin / controllers / base.rb , admin / controllers / accounts.rb , ] app / controllers / events.rb и т. д. Это позволит пользователям плагина переходить к контроллерам в «субприложении» приложения Padrino. например, PADRINO_ROOT / admin

Текущая функция controllerList , кажется, обрабатывает это автозаполнение, и вот что у меня есть до сих пор (только немного изменено из исходного источника)

function! s:controllerList(A,L,P)
  let con = padrino#app().relglob("*/controllers/","**/*",".rb") 
  call map(con,'s:sub(v:val,"_controller$","")')
  return s:autocamelize(con,a:A)  
endfunction

Я добавил подстановочный знак перед каталог контроллеров, но это дает такие результаты, как

  • Rcontroller ers / base
  • Rcontroller ers / sessions
  • Rcontroller s / events

для последнего, похоже, что-то странное происходит с длиной строк или перекрытием. ..

В идеале я Я хотел бы довести его до такой степени, что ввод Rcontroller admin должен привести к автозаполнению Rcontroller admin / controllers / accounts.rb . Аналогично, Rcontroller app должно привести к Rcontroller app / controllers / events.rb

В коде функции viewList есть что-то похожее на это и его код выглядит следующим образом:

 function! s:viewList(A,L,P)
   let c = s:controller(1)
   let top = padrino#app().relglob("app/views/",s:fuzzyglob(a:A))
   call filter(top,'v:val !~# "\\~$"')
   if c != '' && a:A !~ '/'
     let local = padrino#app().relglob("app/views/".c."/","*.*[^~]")
     return s:completion_filter(local+top,a:A)
   endif
   return s:completion_filter(top,a:A)
 endfunction

У кого-нибудь есть предложения? Заранее спасибо.

16
задан Bill the Lizard 13 May 2011 в 13:28
поделиться