Get Ruby's SMIE code to pass the test suite.
* 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.
This commit is contained in:
parent
aa0214dae5
commit
34d1a1337d
5 changed files with 102 additions and 31 deletions
|
@ -707,7 +707,7 @@ Possible return values:
|
|||
((null toklevels)
|
||||
(when (zerop (length token))
|
||||
(condition-case err
|
||||
(progn (goto-char pos) (funcall next-sexp 1) nil)
|
||||
(progn (funcall next-sexp 1) nil)
|
||||
(scan-error
|
||||
(let ((pos (nth 2 err)))
|
||||
(throw 'return
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue