* Re: trunk r114639: * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for paren-free [not found] <E1VV5za-0006lz-QY@vcs.savannah.gnu.org> @ 2013-10-14 2:06 ` Dmitry Gutov 2013-10-14 13:44 ` Stefan Monnier 0 siblings, 1 reply; 2+ messages in thread From: Dmitry Gutov @ 2013-10-14 2:06 UTC (permalink / raw) To: Stefan Monnier; +Cc: 15594, emacs-devel Hi Stefan, thanks for starting on this feature. Comments and questions follow. > revno: 114639 > revision-id: monnier@iro.umontreal.ca-20131012204050-2kntbtokz1wa3mk5 > parent: eggert@cs.ucla.edu-20131012200038-eeyl9fi1y3vr0vwy > committer: Stefan Monnier <monnier@iro.umontreal.ca> > branch nick: trunk > timestamp: Sat 2013-10-12 16:40:50 -0400 > ... > +(defun ruby-smie--args-separator-p (pos) > + (and > + (eq ?w (char-syntax (char-before))) > + (< pos (point-max)) > + (memq (char-syntax (char-after pos)) '(?w ?\")))) I've made a change to the first condition in 114655, but the last line is still very inadequate. The first argument can be any kind of literal, parenthesized expression, or even (if we want to get fancy) something like `begin foo; bar end'. (See new examples is indent/ruby.rb). So basically, I think we'd like to check if the token following POS is either not "special", or if it is, it begins an expression. Can we do that? > === modified file 'test/indent/ruby.rb' > --- a/test/indent/ruby.rb 2013-10-11 20:45:14 +0000 > +++ b/test/indent/ruby.rb 2013-10-12 20:40:50 +0000 > @@ -170,3 +170,7 @@ > if foo && > bar > end > + > +method1 arg1, # bug#15594 > + method2 arg2, > + arg3 Please note that you've added the example to the "currently failing" part of the file. I've moved it now. ^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: trunk r114639: * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for paren-free 2013-10-14 2:06 ` trunk r114639: * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for paren-free Dmitry Gutov @ 2013-10-14 13:44 ` Stefan Monnier 0 siblings, 0 replies; 2+ messages in thread From: Stefan Monnier @ 2013-10-14 13:44 UTC (permalink / raw) To: Dmitry Gutov; +Cc: 15594, emacs-devel > So basically, I think we'd like to check if the token following POS is > either not "special", or if it is, it begins an expression. Can we do > that? I don't see anything that would stop us. But it'll be more difficult to handle method(arg1), arg2 or method{arg1}, arg2 since there's no space to use as "implicit method call infix operator". Stefan === modified file 'test/indent/ruby.rb' --- test/indent/ruby.rb 2013-10-14 01:51:20 +0000 +++ test/indent/ruby.rb 2013-10-14 13:39:08 +0000 @@ -177,10 +177,12 @@ foo_bar_tee(1, 2, 3) .qux +# Shouldn't "bar" be aligned with "foo"? --Stef if foo && bar end +# Shouldn't "arg2" be aligned with "!" rather than with "arg1"? --Stef method !arg1, arg2 ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-10-14 13:44 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <E1VV5za-0006lz-QY@vcs.savannah.gnu.org> 2013-10-14 2:06 ` trunk r114639: * lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for paren-free Dmitry Gutov 2013-10-14 13:44 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).