Skip to content

Instantly share code, notes, and snippets.

@AndrewRadev
Last active May 8, 2016 14:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndrewRadev/7d678be6b6302793057b5cdcaae35f2b to your computer and use it in GitHub Desktop.
Save AndrewRadev/7d678be6b6302793057b5cdcaae35f2b to your computer and use it in GitHub Desktop.
let g:rails_gf_callbacks = [
\ 'RailsGfTranslation'
\ ]
function! RailsGfTranslation()
let saved_iskeyword = &iskeyword
set iskeyword+=.
if !ember_tools#search#UnderCursor('\%(I18n\.\)\=t(\=[''"]\zs\k\+[''"]')
let &iskeyword = saved_iskeyword
return ''
endif
let translation_key = expand('<cword>')
let translations_file = fnamemodify('config/locales/en.yml', ':p')
let callback_args = [translations_file]
call extend(callback_args, split(translation_key, '\.'))
call call('RailsSetFileOpenCallback', callback_args)
let &iskeyword = saved_iskeyword
return translations_file
endfunction
function! RailsSetFileOpenCallback(filename, ...)
let searches = a:000
augroup rails_file_open_callback
autocmd!
echomsg 'autocmd BufEnter '.a:filename.' normal! gg'
exe 'autocmd BufEnter '.a:filename.' normal! gg'
for pattern in searches
echomsg 'autocmd BufEnter '.a:filename.' call search("'.escape(pattern, '"\').'")'
exe 'autocmd BufEnter '.a:filename.' call search("'.escape(pattern, '"\').'")'
endfor
echomsg 'autocmd BufEnter '.a:filename.' call RailsClearFileOpenCallback()'
exe 'autocmd BufEnter '.a:filename.' call RailsClearFileOpenCallback()'
augroup END
endfunction
function! RailsClearFileOpenCallback()
augroup rails_file_open_callback
autocmd!
augroup END
endfunction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment