From unknown Sun Jun 22 20:55:43 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#12169 <12169@debbugs.gnu.org> To: bug#12169 <12169@debbugs.gnu.org> Subject: Status: [PATCH] Merge changes from upstream ruby-mode Reply-To: bug#12169 <12169@debbugs.gnu.org> Date: Mon, 23 Jun 2025 03:55:43 +0000 retitle 12169 [PATCH] Merge changes from upstream ruby-mode reassign 12169 emacs submitter 12169 Dmitry Gutov severity 12169 normal tag 12169 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 09 20:44:28 2012 Received: (at submit) by debbugs.gnu.org; 10 Aug 2012 00:44:28 +0000 Received: from localhost ([127.0.0.1]:45615 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzdL1-0002PI-5T for submit@debbugs.gnu.org; Thu, 09 Aug 2012 20:44:27 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34933) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzdKx-0002P9-0M for submit@debbugs.gnu.org; Thu, 09 Aug 2012 20:44:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SzdCz-0004uX-72 for submit@debbugs.gnu.org; Thu, 09 Aug 2012 20:36:10 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:37021) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzdCz-0004tv-28 for submit@debbugs.gnu.org; Thu, 09 Aug 2012 20:36:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39289) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzdCx-0004GJ-9O for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2012 20:36:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SzdCu-0004qv-LK for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2012 20:36:07 -0400 Received: from forward1.mail.yandex.net ([77.88.46.6]:44062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SzdCu-0004qZ-4h for bug-gnu-emacs@gnu.org; Thu, 09 Aug 2012 20:36:04 -0400 Received: from smtp2.mail.yandex.net (smtp2.mail.yandex.net [77.88.46.102]) by forward1.mail.yandex.net (Yandex) with ESMTP id A7DEE1241E2B for ; Fri, 10 Aug 2012 04:35:59 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344558959; bh=of7K7Ginc5gE50WVl0na0Gkr+YSY9JK3sgQxAET1RTI=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type; b=GHb+z/dPsqcKrJnpKDPTFy+HDq4JxLs1Mm/HL8WRhFhfvmRryFWBiHUW0Q38YdI2P IWEKSqavjB7YhEEbFurJEjWfzDET0uK1LvHyCvTKwFifyAMXd3ZTqwxcuAc9dlcKPv WOd4Fhf/Uu+uhhuE85McBC6sFTtfbSVIoGJzrKbM= Received: from smtp2.mail.yandex.net (localhost [127.0.0.1]) by smtp2.mail.yandex.net (Yandex) with ESMTP id 954E2E205F1 for ; Fri, 10 Aug 2012 04:35:59 +0400 (MSK) Received: from 98-87.nwlink.spb.ru (98-87.nwlink.spb.ru [178.252.98.87]) by smtp2.mail.yandex.net (nwsmtp/Yandex) with ESMTP id ZxJqBNHi-ZxJGSZ51; Fri, 10 Aug 2012 04:35:59 +0400 X-Yandex-Rcpt-Suid: bug-gnu-emacs@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344558959; bh=of7K7Ginc5gE50WVl0na0Gkr+YSY9JK3sgQxAET1RTI=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: Content-Type; b=TWCv07cE1nH1MATR0P41iIBF/ijc4IeJQRU5v95lC/AwQhAeGJvYD0NAFG5nr4V/o c2vwuY/lajcGRSP6XNqJUgmj6gDnYLqmYJ8n4T9s4W+zzKG6XVMWW/zVRRE2yVi/CO d3OvY1jEvPYemJyoAAlxTM2xWulP9B002sd4w1qY= Message-ID: <50245771.6060109@yandex.ru> Date: Fri, 10 Aug 2012 04:36:01 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: [PATCH] Merge changes from upstream ruby-mode Content-Type: multipart/mixed; boundary="------------080108080604020406020602" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) This is a multi-part message in MIME format. --------------080108080604020406020602 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This is part 1, 1 or 2 more to come. The change to `ruby-syntax-propertize-function' is kind of messy, but I don't see how to do it better without seriously rewriting `ruby-syntax-propertize-heredoc'. --Dmitry --------------080108080604020406020602 Content-Type: text/plain; charset=windows-1251; name="ruby-upstream-1.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ruby-upstream-1.diff" diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 635456a..38379cd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,17 @@ +2012-08-09 Dmitry Gutov + + Merge stuff from upsteam ruby-mode, part 1. + + * progmodes/ruby-mode.el (ruby-mode-map): Remove deprecated + binding (use `M-;' instead). + (ruby-expr-beg, ruby-parse-partial): ?, _, and : are symbol + constituents, ! is not (but kinda should be). + (ruby-singleton-class-p): New function. + (ruby-expr-beg, ruby-in-here-doc-p) + (ruby-syntax-propertize-heredoc): Use it. + (ruby-syntax-propertize-function): Adjust for changes in + `ruby-syntax-propertize-heredoc'. + 2012-08-07 Andreas Schwab * calc/calc-prog.el (math-do-defmath): Use backquote forms. Fix diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 091a7b7..68abaff 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -151,7 +151,6 @@ This should only be called after matching against `ruby-here-doc-beg-re'." (define-key map (kbd "C-M-h") 'backward-kill-word) (define-key map (kbd "C-j") 'reindent-then-newline-and-indent) (define-key map (kbd "C-m") 'newline) - (define-key map (kbd "C-c C-c") 'comment-region) map) "Keymap used in Ruby mode.") @@ -380,11 +379,19 @@ and `\\' when preceded by `?'." ((and (eq c ?:) (or (not b) (eq (char-syntax b) ? )))) ((eq c ?\\) (eq b ??))))) +(defun ruby-singleton-class-p (&optional pos) + (save-excursion + (when pos (goto-char pos)) + (forward-word -1) + (and (or (bolp) (not (eq (char-before (point)) ?_))) + (looking-at "class\\s *<<")))) + (defun ruby-expr-beg (&optional option) "TODO: document." (save-excursion (store-match-data nil) - (let ((space (skip-chars-backward " \t"))) + (let ((space (skip-chars-backward " \t")) + (start (point))) (cond ((bolp) t) ((progn @@ -393,7 +400,8 @@ and `\\' when preceded by `?'." (or (eq (char-syntax (char-before (point))) ?w) (ruby-special-char-p)))) nil) - ((and (eq option 'heredoc) (< space 0)) t) + ((and (eq option 'heredoc) (< space 0)) + (not (progn (goto-char start) (ruby-singleton-class-p)))) ((or (looking-at ruby-operator-re) (looking-at "[\\[({,;]") (and (looking-at "[!?]") @@ -409,7 +417,7 @@ and `\\' when preceded by `?'." ruby-block-mid-keywords) 'words)) (goto-char (match-end 0)) - (not (looking-at "\\s_"))) + (not (looking-at "\\s_\\|!"))) ((eq option 'expr-qstr) (looking-at "[a-zA-Z][a-zA-z0-9_]* +%[^ \t]")) ((eq option 'expr-re) @@ -581,9 +589,7 @@ and `\\' when preceded by `?'." (eq ?. w))))) (goto-char pnt) (setq w (char-after (point))) - (not (eq ?_ w)) (not (eq ?! w)) - (not (eq ?? w)) (skip-chars-forward " \t") (goto-char (match-beginning 0)) (or (not (looking-at ruby-modifier-re)) @@ -1159,7 +1165,10 @@ See `add-log-current-defun-function'." ("^\\(=\\)begin\\_>" (1 "!")) ;; Handle here documents. ((concat ruby-here-doc-beg-re ".*\\(\n\\)") - (7 (prog1 "\"" (ruby-syntax-propertize-heredoc end)))) + (7 (unless (ruby-singleton-class-p (match-beginning 0)) + (put-text-property (match-beginning 7) (match-end 7) + 'syntax-table (string-to-syntax "\"")) + (ruby-syntax-propertize-heredoc end)))) ;; Handle percent literals: %w(), %q{}, etc. ("\\(?:^\\|[[ \t\n<+(,=]\\)\\(%\\)[qQrswWx]?\\([[:punct:]]\\)" (1 (prog1 "|" (ruby-syntax-propertize-general-delimiters end))))) @@ -1174,7 +1183,8 @@ See `add-log-current-defun-function'." (beginning-of-line) (while (re-search-forward ruby-here-doc-beg-re (line-end-position) t) - (push (concat (ruby-here-doc-end-match) "\n") res))) + (unless (ruby-singleton-class-p (match-beginning 0)) + (push (concat (ruby-here-doc-end-match) "\n") res)))) (let ((start (point))) ;; With multiple openers on the same line, we don't know in which ;; part `start' is, so we have to go back to the beginning. @@ -1310,7 +1320,8 @@ isn't in a string or another comment." (let ((old-point (point)) (case-fold-search nil)) (beginning-of-line) (catch 'found-beg - (while (re-search-backward ruby-here-doc-beg-re nil t) + (while (and (re-search-backward ruby-here-doc-beg-re nil t) + (not (ruby-singleton-class-p))) (if (not (or (ruby-in-ppss-context-p 'anything) (ruby-here-doc-find-end old-point))) (throw 'found-beg t))))))) diff --git a/test/ChangeLog b/test/ChangeLog index 03d43d7..86f3019 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,9 @@ +2012-08-09 Dmitry Gutov + + * automated/ruby-mode-tests.el (ruby-should-indent) + (ruby-assert-state): New functions. + Add new tests. + 2012-07-29 David Engster * automated/xml-parse-tests.el (xml-parse-tests--qnames): New diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el index 1a91f51..fbe1b8d 100644 --- a/test/automated/ruby-mode-tests.el +++ b/test/automated/ruby-mode-tests.el @@ -23,16 +23,39 @@ (require 'ruby-mode) -(ert-deftest indent-line-after-symbol-made-from-string-interpolation () +(defun ruby-should-indent (content column) + (with-temp-buffer + (insert content) + (ruby-mode) + (ruby-indent-line) + (should (= (current-column) column)))) + +(defun ruby-assert-state (content &rest values-plist) + "Assert syntax state values at the end of CONTENT. + +VALUES-PLIST is a list with alternating index and value elements." + (with-temp-buffer + (insert content) + (ruby-mode) + (syntax-propertize (point)) + (while values-plist + (should (eq (nth (car values-plist) + (parse-partial-sexp (point-min) (point))) + (cadr values-plist))) + (setq values-plist (cddr values-plist))))) + +(ert-deftest ruby-indent-after-symbol-made-from-string-interpolation () "It can indent the line after symbol made using string interpolation." - (let ((initial-content "def foo(suffix)\n :\"bar#{suffix}\"\n") - (expected-content "def foo(suffix)\n :\"bar#{suffix}\"\n ")) - (with-temp-buffer - (insert initial-content) - (ruby-indent-line) ; Doesn't rely on text properties or the syntax table. - (let ((buffer-content (buffer-substring-no-properties (point-min) - (point-max)))) - (should (string= buffer-content expected-content)))))) + (ruby-should-indent "def foo(suffix)\n :\"bar#{suffix}\"\n" + ruby-indent-level)) + +(ert-deftest ruby-indent-after-js-style-symbol-with-block-beg-name () + "JS-style hash symbol can have keyword name." + (ruby-should-indent "link_to \"home\", home_path, class: \"foo\"\n" 0)) + +(ert-deftest ruby-discern-singleton-class-from-heredoc () + (ruby-assert-state "foo <) id 1Szqhl-0006pG-QH for submit@debbugs.gnu.org; Fri, 10 Aug 2012 11:00:50 -0400 Received: from forward17.mail.yandex.net ([95.108.253.142]:59192) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Szqhh-0006p4-SQ for 12169@debbugs.gnu.org; Fri, 10 Aug 2012 11:00:48 -0400 Received: from smtp18.mail.yandex.net (smtp18.mail.yandex.net [95.108.252.18]) by forward17.mail.yandex.net (Yandex) with ESMTP id EBB781060B7B for <12169@debbugs.gnu.org>; Fri, 10 Aug 2012 18:52:28 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344610348; bh=i2WhmMyIGYe+Y8lrsbWMomg+p0nRaLp/4jxad+4Vkso=; h=Message-ID:Date:From:MIME-Version:To:Subject:References: In-Reply-To:Content-Type; b=PvmL5EnbIygjT7gqOseeizUh0v0ihnM+6KCyFVuiKpCwjkGWaowvrSjTXdSXvO1ih FhDaFgphPUM+IaOnuYE7r++aJEOHWQUrfywHHBcoCp55QDvz73pSKEXkPxND18NKlR mahXAQEcjXokNy/wM/skcCDuZ8LUoNuPHLHCAcGM= Received: from smtp18.mail.yandex.net (localhost [127.0.0.1]) by smtp18.mail.yandex.net (Yandex) with ESMTP id D72D418A05F0 for <12169@debbugs.gnu.org>; Fri, 10 Aug 2012 18:52:28 +0400 (MSK) Received: from 98-87.nwlink.spb.ru (98-87.nwlink.spb.ru [178.252.98.87]) by smtp18.mail.yandex.net (nwsmtp/Yandex) with ESMTP id qSJeFrD0-qSJGtJ9b; Fri, 10 Aug 2012 18:52:28 +0400 X-Yandex-Rcpt-Suid: 12169@debbugs.gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344610348; bh=i2WhmMyIGYe+Y8lrsbWMomg+p0nRaLp/4jxad+4Vkso=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: References:In-Reply-To:Content-Type; b=ZkCs0KPVMTCQ/pnK+MBjWHCEvUcCk3HuhsgTUmxmVpQjXs8AA1G+0iYxX2xjQxR1g VPnmlFfeKv2DyZ6T/wUnIFUL2ZmgolPvUeUZSFjIhKZCbLXLPwXizRUyqfLYcUhjMK 9JZosvGJkCpUmJKZDmuc0roGl6fOEHzfiGIqCk34= Message-ID: <5025202E.70507@yandex.ru> Date: Fri, 10 Aug 2012 18:52:30 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: 12169@debbugs.gnu.org Subject: Re: bug#12169: Acknowledgement ([PATCH] Merge changes from upstream ruby-mode) References: <50245771.6060109@yandex.ru> In-Reply-To: Content-Type: multipart/mixed; boundary="------------010109080102090103020402" X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 12169 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) This is a multi-part message in MIME format. --------------010109080102090103020402 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here's part 2, in which I'm skipping the next 3 commits: https://github.com/ruby/ruby/commit/85df40e9ab4559cd4ddde3f106ab56c76a808cc8 https://github.com/ruby/ruby/commit/6b0dc7fd81b25bc66681548b8b82f38258f7e08c https://github.com/ruby/ruby/commit/862048e28d26112af1e67205cfd1c16564590bce Because as far as I can tell, they hijack the `ruby-deep-indent-paren' behavior. IOW, with these applied, the indentation works as though the above variable is always nil (with a small improvement in the nested case, to be fair), so they don't make sense. Instead, I added two tests, for `ruby-deep-indent-paren' enabled and disabled, and also ported all examples from test/misc/test_ruby_mode.rb. --------------010109080102090103020402 Content-Type: text/plain; charset=windows-1251; name="ruby-upstream-2.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ruby-upstream-2.diff" ZGlmZiAtLWdpdCBhL3Rlc3QvQ2hhbmdlTG9nIGIvdGVzdC9DaGFuZ2VMb2cKaW5kZXggODZm MzAxOS4uYzU5YzNjYiAxMDA2NDQKLS0tIGEvdGVzdC9DaGFuZ2VMb2cKKysrIGIvdGVzdC9D aGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAxMi0wOC0xMCAgRG1pdHJ5IEd1dG92ICA8 ZGd1dG92QHlhbmRleC5ydT4KKworCSogYXV0b21hdGVkL3J1YnktbW9kZS10ZXN0cy5lbCAo cnVieS1zaG91bGQtaW5kZW50KTogQWRkCisJZG9jc3RyaW5nLCBjaGVjayAoY3VycmVudC1p bmRlbnRhdGlvbikgaW5zdGVhZCBvZiAoY3VycmVudC1jb2x1bW4pLgorCShydWJ5LXNob3Vs ZC1pbmRlbnQtYnVmZmVyKTogTmV3IGZ1bmN0aW9uLgorCUFkZCB0ZXN0cyBmb3IgYHJ1Ynkt ZGVlcC1pbmRlbnQtcGFyZW4nIGJlaGF2aW9yLgorCVBvcnQgYWxsIHRlc3RzIGZyb20gdGVz dC9taXNjL3Rlc3RfcnVieV9tb2RlLnJiIGluIFJ1YnkgcmVwby4KKwogMjAxMi0wOC0wOSAg RG1pdHJ5IEd1dG92ICA8ZGd1dG92QHlhbmRleC5ydT4KIAogCSogYXV0b21hdGVkL3J1Ynkt bW9kZS10ZXN0cy5lbCAocnVieS1zaG91bGQtaW5kZW50KQpkaWZmIC0tZ2l0IGEvdGVzdC9h dXRvbWF0ZWQvcnVieS1tb2RlLXRlc3RzLmVsIGIvdGVzdC9hdXRvbWF0ZWQvcnVieS1tb2Rl LXRlc3RzLmVsCmluZGV4IGZiZTFiOGQuLmY5MWI2ZTQgMTAwNjQ0Ci0tLSBhL3Rlc3QvYXV0 b21hdGVkL3J1YnktbW9kZS10ZXN0cy5lbAorKysgYi90ZXN0L2F1dG9tYXRlZC9ydWJ5LW1v ZGUtdGVzdHMuZWwKQEAgLTI0LDExICsyNCwyNCBAQAogKHJlcXVpcmUgJ3J1YnktbW9kZSkK IAogKGRlZnVuIHJ1Ynktc2hvdWxkLWluZGVudCAoY29udGVudCBjb2x1bW4pCisgICJBc3Nl cnQgaW5kZW50YXRpb24gQ09MVU1OIG9uIHRoZSBsYXN0IGxpbmUgb2YgQ09OVEVOVC4iCiAg ICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgKGluc2VydCBjb250ZW50KQogICAgIChydWJ5LW1v ZGUpCiAgICAgKHJ1YnktaW5kZW50LWxpbmUpCi0gICAgKHNob3VsZCAoPSAoY3VycmVudC1j b2x1bW4pIGNvbHVtbikpKSkKKyAgICAoc2hvdWxkICg9IChjdXJyZW50LWluZGVudGF0aW9u KSBjb2x1bW4pKSkpCisKKyhkZWZ1biBydWJ5LXNob3VsZC1pbmRlbnQtYnVmZmVyIChleHBl Y3RlZCBjb250ZW50KQorICAiQXNzZXJ0IHRoYXQgQ09OVEVOVCB0dXJucyBpbnRvIEVYUEVD VEVEIGFmdGVyIHRoZSBidWZmZXIgaXMgcmUtaW5kZW50ZWQuCisKK1RoZSB3aGl0ZXNwYWNl IGJlZm9yZSBhbmQgaW5jbHVkaW5nIFwifFwiIG9uIGVhY2ggbGluZSBpcyByZW1vdmVkLiIK KyAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAoY2wtZmxldCAoKGZpeC1pbmRlbnQgKHMpIChy ZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIl5bIFx0XSp8IiAiIiBzKSkpCisgICAgICAoaW5z ZXJ0IChmaXgtaW5kZW50IGNvbnRlbnQpKQorICAgICAgKHJ1YnktbW9kZSkKKyAgICAgIChp bmRlbnQtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKQorICAgICAgKHNob3VsZCAo c3RyaW5nPSAoZml4LWluZGVudCBleHBlY3RlZCkgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv cGVydGllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKSkpCiAKIChkZWZ1biBydWJ5LWFzc2VydC1z dGF0ZSAoY29udGVudCAmcmVzdCB2YWx1ZXMtcGxpc3QpCiAgICJBc3NlcnQgc3ludGF4IHN0 YXRlIHZhbHVlcyBhdCB0aGUgZW5kIG9mIENPTlRFTlQuCkBAIC01Nyw2ICs3MCwxMjcgQEAg VkFMVUVTLVBMSVNUIGlzIGEgbGlzdCB3aXRoIGFsdGVybmF0aW5nIGluZGV4IGFuZCB2YWx1 ZSBlbGVtZW50cy4iCiAgIChydWJ5LWFzc2VydC1zdGF0ZSAiZm9vIDw8YXNkXG4iIDMgP1xu KQogICAocnVieS1hc3NlcnQtc3RhdGUgImNsYXNzIDw8YXNkXG4iIDMgbmlsKSkKIAorKGVy dC1kZWZ0ZXN0IHJ1YnktZGVlcC1pbmRlbnQgKCkKKyAgKGxldCAoKHJ1YnktZGVlcC1hcmds aXN0IG5pbCkKKyAgICAgICAgKHJ1YnktZGVlcC1pbmRlbnQtcGFyZW4gJyg/XCggP1x7ID9c WyA/XF0gdCkpKQorICAgIChydWJ5LXNob3VsZC1pbmRlbnQgImZvbyA9IFsxLFxuMiIgNykK KyAgICAocnVieS1zaG91bGQtaW5kZW50ICJmb28gPSB7YTogYixcbmM6IGQiIDcpCisgICAg KHJ1Ynktc2hvdWxkLWluZGVudCAiZm9vKGEsXG5iIiA0KSkpCisKKyhlcnQtZGVmdGVzdCBy dWJ5LWRlZXAtaW5kZW50LWRpc2FibGVkICgpCisgIChsZXQgKChydWJ5LWRlZXAtYXJnbGlz dCBuaWwpCisgICAgICAgIChydWJ5LWRlZXAtaW5kZW50LXBhcmVuIG5pbCkpCisgICAgKHJ1 Ynktc2hvdWxkLWluZGVudCAiZm9vID0gW1xuMSIgcnVieS1pbmRlbnQtbGV2ZWwpCisgICAg KHJ1Ynktc2hvdWxkLWluZGVudCAiZm9vID0ge1xuYTogYiIgcnVieS1pbmRlbnQtbGV2ZWwp CisgICAgKHJ1Ynktc2hvdWxkLWluZGVudCAiZm9vKFxuYSIgcnVieS1pbmRlbnQtbGV2ZWwp KSkKKworKGVydC1kZWZ0ZXN0IHJ1YnktaW5kZW50LXNpbXBsZSAoKQorICAocnVieS1zaG91 bGQtaW5kZW50LWJ1ZmZlcgorICAgImlmIGZvbworICAgfCAgYmFyCisgICB8ZW5kCisgICB8 em90CisgICB8IgorICAgImlmIGZvbworICAgfGJhcgorICAgfCAgZW5kCisgICB8ICAgIHpv dAorICAgfCIpKQorCisoZXJ0LWRlZnRlc3QgcnVieS1pbmRlbnQta2V5d29yZC1sYWJlbCAo KQorICAocnVieS1zaG91bGQtaW5kZW50LWJ1ZmZlcgorICAgImJhcihjbGFzczogWFhYKSBk bworICAgfCAgZm9vCisgICB8ZW5kCisgICB8YmFyCisgICB8IgorICAgImJhcihjbGFzczog WFhYKSBkbworICAgfCAgICAgZm9vCisgICB8ICBlbmQKKyAgIHwgICAgYmFyCisgICB8Iikp CisKKyhlcnQtZGVmdGVzdCBydWJ5LWluZGVudC1tZXRob2Qtd2l0aC1xdWVzdGlvbi1tYXJr ICgpCisgIChydWJ5LXNob3VsZC1pbmRlbnQtYnVmZmVyCisgICAiaWYgeC5pc19hPyhYWFgp CisgICB8ICBmb28KKyAgIHxlbmQKKyAgIHwiCisgICAiaWYgeC5pc19hPyhYWFgpCisgICB8 IGZvbworICAgfCAgIGVuZAorICAgfCIpKQorCisoZXJ0LWRlZnRlc3QgcnVieS1pbmRlbnQt ZXhwci1pbi1yZWdleHAgKCkKKyAgKHJ1Ynktc2hvdWxkLWluZGVudC1idWZmZXIKKyAgICJp ZiAvI3tmb299LyA9fiBzCisgICB8ICB4ID0gMQorICAgfGVuZAorICAgfCIKKyAgICJpZiAv I3tmb299LyA9fiBzCisgICB8IHggPSAxCisgICB8ICBlbmQKKyAgIHwiKSkKKworKGVydC1k ZWZ0ZXN0IHJ1YnktaW5kZW50LXNpbmdsZXRvbi1jbGFzcyAoKQorICA6ZXhwZWN0ZWQtcmVz dWx0IDpmYWlsZWQgICA7IERvZXNuJ3Qgd29yayB5ZXQsIHdoZW4gbm8gc3BhY2UgYmVmb3Jl ICI8PCIuCisgIChydWJ5LXNob3VsZC1pbmRlbnQtYnVmZmVyCisgICAiY2xhc3M8PGJhcgor ICAgfCAgZm9vCisgICB8ZW5kCisgICB8IgorICAgImNsYXNzPDxiYXIKKyAgIHxmb28KKyAg IHwgICBlbmQKKyAgIHwiKSkKKworKGVydC1kZWZ0ZXN0IHJ1YnktaW5kZW50LWFycmF5LWxp dGVyYWwgKCkKKyAgKGxldCAoKHJ1YnktZGVlcC1pbmRlbnQtcGFyZW4gbmlsKSkKKyAgICAo cnVieS1zaG91bGQtaW5kZW50LWJ1ZmZlcgorICAgICAiZm9vID0gWworICAgICB8ICBiYXIK KyAgICAgfF0KKyAgICAgfCIKKyAgICAgImZvbyA9IFsKKyAgICAgfCBiYXIKKyAgICAgfCAg XQorICAgICB8IikpCisgIChydWJ5LXNob3VsZC1pbmRlbnQtYnVmZmVyCisgICAiZm9vIGRv CisgICB8ICBbYmFyXQorICAgfGVuZAorICAgfCIKKyAgICJmb28gZG8KKyAgIHxbYmFyXQor ICAgfCAgZW5kCisgICB8IikpCisKKyhlcnQtZGVmdGVzdCBydWJ5LWluZGVudC1iZWdpbi1l bmQgKCkKKyAgKHJ1Ynktc2hvdWxkLWluZGVudC1idWZmZXIKKyAgICJiZWdpbgorICAgfCAg YVtiXQorICAgfGVuZAorICAgfCIKKyAgICJiZWdpbgorICAgfCBhW2JdCisgICB8ICBlbmQK KyAgIHwiKSkKKworKGVydC1kZWZ0ZXN0IHJ1YnktaW5kZW50LWFycmF5LWFmdGVyLXBhcmVu LWFuZC1zcGFjZSAoKQorICAocnVieS1zaG91bGQtaW5kZW50LWJ1ZmZlcgorICAgImNsYXNz IEEKKyAgIHwgIGRlZiBmb28KKyAgIHwgICAgZm9vKCBbXSkKKyAgIHwgIGVuZAorICAgfGVu ZAorICAgfCIKKyAgICJjbGFzcyBBCisgICB8IGRlZiBmb28KKyAgIHxmb28oIFtdKQorICAg fGVuZAorICAgfCAgZW5kCisgICB8IikpCisKIChwcm92aWRlICdydWJ5LW1vZGUtdGVzdHMp CiAKIDs7OyBydWJ5LW1vZGUtdGVzdHMuZWwgZW5kcyBoZXJlCg== --------------010109080102090103020402-- From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 10 12:03:14 2012 Received: (at 12169) by debbugs.gnu.org; 10 Aug 2012 16:03:15 +0000 Received: from localhost ([127.0.0.1]:47151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzrgA-0008F4-LF for submit@debbugs.gnu.org; Fri, 10 Aug 2012 12:03:14 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:55202) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Szrg8-0008Ey-N1 for 12169@debbugs.gnu.org; Fri, 10 Aug 2012 12:03:13 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1SzrY8-0003Gb-5r; Fri, 10 Aug 2012 11:54:56 -0400 From: Glenn Morris To: Dmitry Gutov Subject: Re: bug#12169: [PATCH] Merge changes from upstream ruby-mode References: <50245771.6060109@yandex.ru> X-Spook: Khaddafi Osama embassy Adriatic Afghanistan rail gun Ft. X-Ran: YT4||Z9G}Pq"S-cdt|x|G&W=\ (Dmitry Gutov's message of "Fri, 10 Aug 2012 04:36:01 +0400") Message-ID: User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 12169 Cc: 12169@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Thanks for this. Are you also the upstream author? If not, please adjust the ChangeLog entries so that each change has the correct author (the upstream author for each change, plus you if you did non-trivial adaptation of a change). From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 10 16:36:39 2012 Received: (at 12169) by debbugs.gnu.org; 10 Aug 2012 20:36:40 +0000 Received: from localhost ([127.0.0.1]:47574 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Szvwk-0008Qw-Id for submit@debbugs.gnu.org; Fri, 10 Aug 2012 16:36:39 -0400 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:36382) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Szvwi-0008Qp-Qk for 12169@debbugs.gnu.org; Fri, 10 Aug 2012 16:36:37 -0400 Received: from faina.iro.umontreal.ca (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id q7AKSIid017361; Fri, 10 Aug 2012 16:28:18 -0400 Received: by faina.iro.umontreal.ca (Postfix, from userid 20848) id 0A211B4177; Fri, 10 Aug 2012 16:28:17 -0400 (EDT) From: Stefan Monnier To: Dmitry Gutov Subject: Re: bug#12169: [PATCH] Merge changes from upstream ruby-mode Message-ID: References: <50245771.6060109@yandex.ru> Date: Fri, 10 Aug 2012 16:28:17 -0400 In-Reply-To: <50245771.6060109@yandex.ru> (Dmitry Gutov's message of "Fri, 10 Aug 2012 04:36:01 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered URI_32_40HEX=0.2, RV4306=0 X-NAI-Spam-Version: 2.2.0.9309 : core <4306> : streams <797298> : uri <1189161> X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 12169 Cc: 12169@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > The change to `ruby-syntax-propertize-function' is kind of messy, but > I don't see how to do it better without seriously rewriting > ruby-syntax-propertize-heredoc'. I think it can be simplified by adding a "\\(\\_ Here's part 2, in which I'm skipping the next 3 commits: > https://github.com/ruby/ruby/commit/85df40e9ab4559cd4ddde3f106ab56c76a808cc8 > https://github.com/ruby/ruby/commit/6b0dc7fd81b25bc66681548b8b82f38258f7e08c > https://github.com/ruby/ruby/commit/862048e28d26112af1e67205cfd1c16564590bce I also added that patch. I presume that you're also trying to convince Ruby's maintainers to undo those changes? Same as before: please provide a subsequent patch which corrects the authorship attribution. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 10 18:23:46 2012 Received: (at 12169) by debbugs.gnu.org; 10 Aug 2012 22:23:46 +0000 Received: from localhost ([127.0.0.1]:47677 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzxcP-0002Na-DJ for submit@debbugs.gnu.org; Fri, 10 Aug 2012 18:23:46 -0400 Received: from forward12.mail.yandex.net ([95.108.130.94]:46320) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzxcK-0002NO-O8 for 12169@debbugs.gnu.org; Fri, 10 Aug 2012 18:23:43 -0400 Received: from smtp13.mail.yandex.net (smtp13.mail.yandex.net [95.108.130.68]) by forward12.mail.yandex.net (Yandex) with ESMTP id 0F03DC21516; Sat, 11 Aug 2012 02:15:21 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344636921; bh=oV84FMq2dvZcdG9riGWr2BwY79EkolUlXY/FqSpWC9Y=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type; b=bY99sTJd/Z7RqzT0LIxqznU31uyMzKekculdQxAf/o+CS+DOblp3x93clL5S8rKU4 QjVXE6NROZuELp5+Wo5NQx13tIcjeZFCbMYgs2x0mSfaBVMtbUQvRN2pqUHnx2fov7 FN+ich222znjIkemFYM+eyJIIxYlHj8FTsPso+cI= Received: from smtp13.mail.yandex.net (localhost [127.0.0.1]) by smtp13.mail.yandex.net (Yandex) with ESMTP id D24BAE4021C; Sat, 11 Aug 2012 02:15:20 +0400 (MSK) Received: from 5x164x92x232.dynamic.spb.ertelecom.ru (5x164x92x232.dynamic.spb.ertelecom.ru [5.164.92.232]) by smtp13.mail.yandex.net (nwsmtp/Yandex) with ESMTP id FHGOYi5A-FKGaTlbH; Sat, 11 Aug 2012 02:15:20 +0400 X-Yandex-Rcpt-Suid: monnier@IRO.UMontreal.CA X-Yandex-Rcpt-Suid: 12169@debbugs.gnu.org X-Yandex-Rcpt-Suid: rgm@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344636920; bh=oV84FMq2dvZcdG9riGWr2BwY79EkolUlXY/FqSpWC9Y=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type; b=SPTcvLB8BovQ/FMlA7jymq6sZRBXKPr/pkDOU/6TzEcYcSn2FT7+3AaH/GzaL6CVi qQOVSQqCjGtWBAA3zd99A6b+/O/oAxiWnD/7WymOr+L6gZIk0D+BGyjBcQNyXQW0js 5GgpmuSz7lxgTtT4wXZ4NATsV7d3YFA1Oey9Z0sI= Message-ID: <502587F9.7090201@yandex.ru> Date: Sat, 11 Aug 2012 02:15:21 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: Stefan Monnier Subject: Re: bug#12169: [PATCH] Merge changes from upstream ruby-mode References: <50245771.6060109@yandex.ru> In-Reply-To: Content-Type: multipart/mixed; boundary="------------050904080204070102030608" X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 12169 Cc: Glenn Morris , 12169@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) This is a multi-part message in MIME format. --------------050904080204070102030608 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 10.08.2012 19:54, Glenn Morris wrote: > Are you also the upstream author? Nope. Thanks for the reminder. On 11.08.2012 0:28, Stefan Monnier wrote: > I've installed your patch, but please fix the ChangeLog authorship as > pointed out by Glenn (just include the changes in a subsequent patch). Included. >> Here's part 2, in which I'm skipping the next 3 commits: >> https://github.com/ruby/ruby/commit/85df40e9ab4559cd4ddde3f106ab56c76a808cc8 >> https://github.com/ruby/ruby/commit/6b0dc7fd81b25bc66681548b8b82f38258f7e08c >> https://github.com/ruby/ruby/commit/862048e28d26112af1e67205cfd1c16564590bce For completeness, this later commit is directly related to the above 3: https://github.com/ruby/ruby/commit/d9e6b7d6a5e81afb588d79ef923b70890cdec4ba I also don't include it, and we can see that the relevant test passes fine. > I also added that patch. I presume that you're also trying to convince > Ruby's maintainers to undo those changes? Not really, no. I will open an issue on Redmine since you asked, but nobody seems to be interested in pulling our changes back anyway, and as long as we're doing it in one direction, cherry-picking should be fine. Here's a recent example: http://bugs.ruby-lang.org/issues/5140 A year-old bug, fixed in Emacs trunk, a user posted that information there with a patch 4 months ago, and... nothing. > Same as before: please provide a subsequent patch which corrects the > authorship attribution. In my not-a-lawyer opinion, the example code in tests is not copyrightable, but okay, I mentioned the original author there too. --Dmitry --------------050904080204070102030608 Content-Type: text/plain; charset=windows-1251; name="ruby-upstream-3.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="ruby-upstream-3.diff" diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 38379cd..2d63ab6 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,17 +1,29 @@ -2012-08-09 Dmitry Gutov +2012-08-10 Nobuyoshi Nakada - Merge stuff from upsteam ruby-mode, part 1. + * progmodes/ruby-mode.el (ruby-mode-map): Remove unnecessary + binding for `newline'. + (ruby-move-to-block): When moving backward, stop at block opening, + not indentation. + * progmodes/ruby-mode.el (ruby-brace-to-do-end) + (ruby-do-end-to-brace, ruby-toggle-block): New functions. + * progmodes/ruby-mode.el (ruby-mode-map): Add binding for + `ruby-toggle-block'. + +2012-08-09 Dmitry Gutov - * progmodes/ruby-mode.el (ruby-mode-map): Remove deprecated - binding (use `M-;' instead). (ruby-expr-beg, ruby-parse-partial): ?, _, and : are symbol constituents, ! is not (but kinda should be). - (ruby-singleton-class-p): New function. - (ruby-expr-beg, ruby-in-here-doc-p) - (ruby-syntax-propertize-heredoc): Use it. + (ruby-syntax-propertize-heredoc): Use `ruby-singleton-class-p'. (ruby-syntax-propertize-function): Adjust for changes in `ruby-syntax-propertize-heredoc'. +2012-08-09 Nobuyoshi Nakada + + * progmodes/ruby-mode.el (ruby-mode-map): Remove deprecated + binding (use `M-;' instead). + (ruby-singleton-class-p): New function. + (ruby-expr-beg, ruby-in-here-doc-p) Use it. + 2012-08-07 Andreas Schwab * calc/calc-prog.el (math-do-defmath): Use backquote forms. Fix diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index 68abaff..c430c99 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -150,7 +150,7 @@ This should only be called after matching against `ruby-here-doc-beg-re'." (define-key map (kbd "M-C-q") 'ruby-indent-exp) (define-key map (kbd "C-M-h") 'backward-kill-word) (define-key map (kbd "C-j") 'reindent-then-newline-and-indent) - (define-key map (kbd "C-m") 'newline) + (define-key map (kbd "C-c {") 'ruby-toggle-block) map) "Keymap used in Ruby mode.") @@ -881,7 +881,7 @@ or blocks containing the current block." ;; TODO: Make this work for n > 1, ;; make it not loop for n = 0, ;; document body - (let (start pos done down) + (let (start pos done down (orig (point))) (setq start (ruby-calculate-indent)) (setq down (looking-at (if (< n 0) ruby-block-end-re (concat "\\<\\(" ruby-block-beg-re "\\)\\>")))) @@ -907,8 +907,18 @@ or blocks containing the current block." (save-excursion (back-to-indentation) (if (looking-at (concat "\\<\\(" ruby-block-mid-re "\\)\\>")) - (setq done nil)))))) - (back-to-indentation)) + (setq done nil))))) + (back-to-indentation) + (when (< n 0) + (let ((eol (point-at-eol)) state next) + (if (< orig eol) (setq eol orig)) + (setq orig (point)) + (while (and (setq next (apply 'ruby-parse-partial eol state)) + (< (point) eol)) + (setq state next)) + (when (cdaadr state) + (goto-char (cdaadr state))) + (backward-word))))) (defun ruby-beginning-of-block (&optional arg) "Move backward to the beginning of the current block. @@ -1116,6 +1126,47 @@ See `add-log-current-defun-function'." (if mlist (concat mlist mname) mname) mlist))))) +(defun ruby-brace-to-do-end () + (when (looking-at "{") + (let ((orig (point)) (end (progn (ruby-forward-sexp) (point)))) + (when (eq (char-before) ?\}) + (delete-char -1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "end") + (if (eq (char-syntax (char-after)) ?w) + (insert " ")) + (goto-char orig) + (delete-char 1) + (if (eq (char-syntax (char-before)) ?w) + (insert " ")) + (insert "do") + (when (looking-at "\\sw\\||") + (insert " ") + (backward-char)) + t)))) + +(defun ruby-do-end-to-brace () + (when (and (or (bolp) + (not (memq (char-syntax (char-before)) '(?w ?_)))) + (looking-at "\\ + + Original tests in test_ruby_mode.rb in upstream (author). 2012-08-09 Dmitry Gutov diff --git a/test/automated/ruby-mode-tests.el b/test/automated/ruby-mode-tests.el index f91b6e4..df51aa0 100644 --- a/test/automated/ruby-mode-tests.el +++ b/test/automated/ruby-mode-tests.el @@ -191,6 +191,32 @@ VALUES-PLIST is a list with alternating index and value elements." | end |")) +(ert-deftest ruby-move-to-block-stops-at-opening () + (with-temp-buffer + (insert "def f\nend") + (beginning-of-line) + (ruby-mode) + (ruby-move-to-block -1) + (should (looking-at "f$")))) + +(ert-deftest ruby-toggle-block-to-do-end () + (with-temp-buffer + (insert "foo {|b|\n}\n") + (ruby-mode) + (search-backward "{") + (ruby-toggle-block) + (should (string= "foo do |b|\nend\n" (buffer-substring-no-properties + (point-min) (point-max)))))) + +(ert-deftest ruby-toggle-block-to-brace () + (with-temp-buffer + (insert "foo do |b|\nend\n") + (ruby-mode) + (search-backward "do") + (ruby-toggle-block) + (should (string= "foo {|b|\n}\n" (buffer-substring-no-properties + (point-min) (point-max)))))) + (provide 'ruby-mode-tests) ;;; ruby-mode-tests.el ends here --------------050904080204070102030608-- From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 10 19:14:26 2012 Received: (at 12169) by debbugs.gnu.org; 10 Aug 2012 23:14:26 +0000 Received: from localhost ([127.0.0.1]:47728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzyPP-0003Xj-Ks for submit@debbugs.gnu.org; Fri, 10 Aug 2012 19:14:26 -0400 Received: from forward3.mail.yandex.net ([77.88.46.8]:35501) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SzyPK-0003XZ-8N for 12169@debbugs.gnu.org; Fri, 10 Aug 2012 19:14:22 -0400 Received: from smtp4.mail.yandex.net (smtp4.mail.yandex.net [77.88.46.104]) by forward3.mail.yandex.net (Yandex) with ESMTP id 15978B41985; Sat, 11 Aug 2012 03:05:59 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344639959; bh=38BxubZnGG+/JkHAMcs9oYfBfES0LTXriehVYlDHPto=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type:Content-Transfer-Encoding; b=Gkx5UcITq0Fyjm8Hk3SzN+wPj9ce3ykCUPR2760uDtFn1X9U2qftfCRJyTWYAMkeJ 8Iu+VT3aAJ3g4glB6vKBnJXAUYoc2nxBV6XggkWo2f/t5AtVaYv4Ht2Eo6IwSVhk+E BSGL7+pA+Gh/9PxmgMPqYXQZICmL/zd3TgCnaIsk= Received: from smtp4.mail.yandex.net (localhost [127.0.0.1]) by smtp4.mail.yandex.net (Yandex) with ESMTP id D86795C07DB; Sat, 11 Aug 2012 03:05:58 +0400 (MSK) Received: from 5x164x92x232.dynamic.spb.ertelecom.ru (5x164x92x232.dynamic.spb.ertelecom.ru [5.164.92.232]) by smtp4.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 5wniBOHh-5wnWChxp; Sat, 11 Aug 2012 03:05:58 +0400 X-Yandex-Rcpt-Suid: monnier@IRO.UMontreal.CA X-Yandex-Rcpt-Suid: 12169@debbugs.gnu.org X-Yandex-Rcpt-Suid: rgm@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344639958; bh=38BxubZnGG+/JkHAMcs9oYfBfES0LTXriehVYlDHPto=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject: References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=FG6qtzxrFRUU97HfFcyGHBGEAJcLR3zCthxqYh0DTuG+U6+bwDgNNAWFvibtHMOEv IF9NDOC59S9mFTgUETLtnlWnwctbuMAi7oL+8m8udXlo3sOJNgYhj6Y5w3C0GdmsA8 TYRoAIuPkO/RddreNQq5jZHSkWeNSxZMe0EQzCwE= Message-ID: <502593DA.6040505@yandex.ru> Date: Sat, 11 Aug 2012 03:06:02 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: Stefan Monnier Subject: Re: bug#12169: [PATCH] Merge changes from upstream ruby-mode References: <50245771.6060109@yandex.ru> <502587F9.7090201@yandex.ru> In-Reply-To: <502587F9.7090201@yandex.ru> Content-Type: text/plain; charset=windows-1251; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 12169 Cc: Glenn Morris , 12169@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) On 11.08.2012 2:15, Dmitry Gutov wrote: > I will open an issue on Redmine http://bugs.ruby-lang.org/issues/6854 From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 12 18:17:32 2012 Received: (at 12169) by debbugs.gnu.org; 12 Aug 2012 22:17:32 +0000 Received: from localhost ([127.0.0.1]:51926 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0gTU-0006qs-MF for submit@debbugs.gnu.org; Sun, 12 Aug 2012 18:17:32 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.182]:13397) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0gTT-0006ql-4P for 12169@debbugs.gnu.org; Sun, 12 Aug 2012 18:17:31 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAG6Zu09FxKJq/2dsb2JhbABEtBGBCIIVAQEEAVYjBQsLDiYSFBgNJIgcBboJkEQDozOBWIMF X-IronPort-AV: E=Sophos;i="4.75,637,1330923600"; d="scan'208";a="195539758" Received: from 69-196-162-106.dsl.teksavvy.com (HELO pastel.home) ([69.196.162.106]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 12 Aug 2012 18:09:01 -0400 Received: by pastel.home (Postfix, from userid 20848) id 19DE459305; Sun, 12 Aug 2012 18:09:01 -0400 (EDT) From: Stefan Monnier To: Dmitry Gutov Subject: Re: bug#12169: [PATCH] Merge changes from upstream ruby-mode Message-ID: References: <50245771.6060109@yandex.ru> <502587F9.7090201@yandex.ru> Date: Sun, 12 Aug 2012 18:09:00 -0400 In-Reply-To: <502587F9.7090201@yandex.ru> (Dmitry Gutov's message of "Sat, 11 Aug 2012 02:15:21 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 12169 Cc: Glenn Morris , 12169@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > In my not-a-lawyer opinion, the example code in tests is not copyrightable, > but okay, I mentioned the original author there too. Great, thanks, installed, Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 13 07:35:50 2012 Received: (at control) by debbugs.gnu.org; 13 Aug 2012 11:35:50 +0000 Received: from localhost ([127.0.0.1]:52672 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0sw1-0001O0-R6 for submit@debbugs.gnu.org; Mon, 13 Aug 2012 07:35:50 -0400 Received: from forward7.mail.yandex.net ([77.88.61.37]:38019) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1T0svz-0001Ns-6V for control@debbugs.gnu.org; Mon, 13 Aug 2012 07:35:48 -0400 Received: from smtp8.mail.yandex.net (smtp8.mail.yandex.net [77.88.61.54]) by forward7.mail.yandex.net (Yandex) with ESMTP id 27B501C1427 for ; Mon, 13 Aug 2012 15:27:13 +0400 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344857233; bh=YvCUx1A8pitds2pMOkGYjrw6QdabBoj73NdYkMA6n/U=; h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type: Content-Transfer-Encoding; b=UWsl0aVVvWrkNHaRhQ4ggn1Dk8jixBRO/yTMVE5T4UfaEo1qAuzDwxi9qxTY7cIZv Xl9bMiBpr1Jm74aIi/1WePxDt1gINLDvfnY7278Ptfoehzju7Wko/CZ1SPy1eEia4g fbtuH51In+eNGaL85QRcI21XbXqf7/OfwMeoDFlE= Received: from smtp8.mail.yandex.net (localhost [127.0.0.1]) by smtp8.mail.yandex.net (Yandex) with ESMTP id 148F01B6073F for ; Mon, 13 Aug 2012 15:27:13 +0400 (MSK) Received: from dynamicip-188-187-113-24.pppoe.volgograd.ertelecom.ru (dynamicip-188-187-113-24.pppoe.volgograd.ertelecom.ru [188.187.113.24]) by smtp8.mail.yandex.net (nwsmtp/Yandex) with ESMTP id RB2eSWkT-RC2qEIH5; Mon, 13 Aug 2012 15:27:12 +0400 X-Yandex-Rcpt-Suid: control@debbugs.gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1344857233; bh=YvCUx1A8pitds2pMOkGYjrw6QdabBoj73NdYkMA6n/U=; h=Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: Content-Type:Content-Transfer-Encoding; b=YNdhDtvBdR+zoEgwSuqPYItD6Pzd1Vps0sgVmo/IjaHLLPJKSPP9zR7tvU01tWzp4 OuuyvYQ1ba5luzM6QhlRaOrcvwFYh3FHGzvJ6n+wuOGsqgZCAUJutDGt9zisiqtm5K uLHsndq+GO4beajKI8N5w9o6gmo7YROy9Rx7XOrw= Message-ID: <5028E490.40800@yandex.ru> Date: Mon, 13 Aug 2012 15:27:12 +0400 From: Dmitry Gutov User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20120713 Thunderbird/14.0 MIME-Version: 1.0 To: control@debbugs.gnu.org Subject: close 12169 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) close 12169 thanks From unknown Sun Jun 22 20:55:43 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 11 Sep 2012 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator