📘
vim-railsのEjavascript補完がRails7では機能しない件
Rails7からJavaScriptディレクトリの場所がapp/javascriptに変更されたためrails-vimのEjavascriptコマンドでJavaScriptファイルの補完ができず困ったので頑張ってパッチ当ててみました。
vimスクリプトをいじるのは今回が初めてなので最適解ではないかもしれませんが、自分の実用範囲では機能しているのでうまくいったと思います。
git diff
diff --git a/autoload/rails.vim b/autoload/rails.vim
index 165b3e1..2045e4f 100644
--- a/autoload/rails.vim
+++ b/autoload/rails.vim
@@ -3302,7 +3302,7 @@ endfunction
function! s:javascriptEdit(cmd,...) abort
return s:AssetEdit(a:cmd, a:0 ? a:1 : '', 'javascripts',
- \ rails#app().has_gem('coffee-rails') ? '.coffee' : '.js', [])
+ \ rails#app().has_gem('coffee-rails') ? '.coffee' : '.js', ['app/javascript/%s.js'])
endfunction
function! s:stylesheetEdit(cmd,...) abort
@@ -3321,6 +3321,7 @@ function! s:javascriptList(A, L, P, ...) abort
let strip = '\%('.escape(join(suffixes, '\|'), '.*[]~').'\)$'
call map(list,'substitute(v:val,strip,"","")')
call extend(list, rails#app().relglob("public/".dir."/","**/*",suffixes[0]))
+ call extend(list, rails#app().relglob("app/javascript/","**/*",suffixes[0]))
for suffix in rails#app().has('webpack') ? rails#pack_suffixes(suffixes[0][1:-1]) : []
call extend(list, rails#app().relglob("app/javascript/packs/","**/*",suffix))
endfor
Discussion