Guest User

Untitled

a guest
May 22nd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1. function! RubyEndToken ()
  2. let current_line = getline( '.' )
  3. let braces_at_end = '{\s*\(|\(,\|\s\|\w\)*|\s*\)\?$'
  4. let brackets_at_end = '[\s*\(|\(,\|\s\|\w\)*|\s*\)\?$'
  5. let stuff_without_do = '^\s*\(class\|if\|unless\|begin\|case\|for\|module\|while\|until\|def\)'
  6. let with_do = 'do\s*\(|\(,\|\s\|\w\)*|\s*\)\?$'
  7.  
  8. if match(current_line, braces_at_end) >= 0
  9. return "\<CR>}\<C-O>O"
  10. elseif match(current_line, brackets_at_end) >= 0
  11. return "\<CR>\1\<C-O>O"
  12. elseif match(current_line, stuff_without_do) >= 0
  13. return "\<CR>end\<C-O>O"
  14. elseif match(current_line, with_do) >= 0
  15. return "\<CR>end\<C-O>O"
  16. else
  17. return "\<CR>"
  18. endif
  19. endfunction
  20. autocmd FileType ruby,eruby inoremap <buffer> <CR> <C-R>=RubyEndToken()<CR>
Add Comment
Please, Sign In to add comment