• Stefan Monnier's avatar
    Get Ruby's SMIE code to pass the test suite. · 34d1a133
    Stefan Monnier authored
    * lisp/progmodes/ruby-mode.el (ruby-use-smie): Change default.
    (ruby-comment-column): Follow the global default, by default.
    (ruby-smie-grammar): Add assignment syntax.
    (ruby-smie--implicit-semi-p): No implicit semi-colon after an
    open-paren, a comma, or a \.
    (ruby-smie--forward-token, ruby-smie--backward-token): Handle heredocs,
    and line continuations.
    (ruby-smie-rules): Adjust handling of open-paren, now that it's never
    followed by implicit semi-colons.  Add rule for string concatenation
    and for indentation at BOB.
    (ruby-forward-sexp, ruby-backward-sexp): Adjust for when smie is in use.
    
    * lisp/emacs-lisp/smie.el (smie-next-sexp): Don't go back to pos before
    calling next-sexp, since next-token may have skipped chars which
    next-sexp doesn't know should be skipped!
    
    * test/indent/ruby.rb: Port a few cases from automated/ruby-mode-tests.el.
    Adjust indentation of continued line to the new SMIE behavior.
    34d1a133
ruby-mode.el 77.9 KB