]> code.delx.au - gnu-emacs/commitdiff
Support squiggly heredocs in ruby-mode
authorDmitry Gutov <dgutov@yandex.ru>
Wed, 20 Jan 2016 21:26:05 +0000 (00:26 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Wed, 20 Jan 2016 21:26:38 +0000 (00:26 +0300)
* lisp/progmodes/ruby-mode.el (ruby-here-doc-beg-re):
Support squiggly heredocs added in Ruby 2.3.

* test/indent/ruby.rb: Add squiggly example.

lisp/progmodes/ruby-mode.el
test/indent/ruby.rb

index 53f8a6bb4c0a5be47cdc08fb85aa849b1ce852ba..e3fe315f3bd32285c13459cd02e24ece791a37ca 100644 (file)
 
 (eval-and-compile
   (defconst ruby-here-doc-beg-re
-  "\\(<\\)<\\(-\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)"
+  "\\(<\\)<\\([~-]\\)?\\(\\([a-zA-Z0-9_]+\\)\\|[\"]\\([^\"]+\\)[\"]\\|[']\\([^']+\\)[']\\)"
   "Regexp to match the beginning of a heredoc.")
 
   (defconst ruby-expression-expansion-re
index dec6de98605044ac4926220656d2d17673d72f06..dfd1c75a679679520ee0efc6fec7ace562c44c45 100644 (file)
@@ -4,6 +4,10 @@ if something_wrong?             # ruby-move-to-block-skips-heredoc
   end
   eowarn
   foo
+
+  foo(<<~squiggly)
+  end
+  squiggly
 end
 
 def foo