[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/smalltalk-mode aaa7cb0 17/34: improve smalltalk.el dete
From: |
Stefan Monnier |
Subject: |
[elpa] externals/smalltalk-mode aaa7cb0 17/34: improve smalltalk.el detection of a new method's indent |
Date: |
Tue, 9 Apr 2019 22:30:44 -0400 (EDT) |
branch: externals/smalltalk-mode
commit aaa7cb00844b56cbc3a2298bd4ebe307aec34480
Author: Mathieu Suen <address@hidden>
Commit: Paolo Bonzini <address@hidden>
improve smalltalk.el detection of a new method's indent
---
smalltalk-mode.el | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/smalltalk-mode.el b/smalltalk-mode.el
index 78bf95e..1af2f1d 100644
--- a/smalltalk-mode.el
+++ b/smalltalk-mode.el
@@ -569,7 +569,7 @@ expressions."
;; we're top level
(setq indent-amount (smalltalk-toplevel-indent nil))))
- ((= (preceding-char) ?.) ;at end of statement
+ ((smalltalk-at-end-of-statement) ;end of statement or after
temps
(smalltalk-find-statement-begin)
(setq indent-amount (smalltalk-current-column)))
((= (preceding-char) ?:)
@@ -590,6 +590,21 @@ expressions."
(+ (smalltalk-current-column)
smalltalk-indent-amount)))))))
+(defun smalltalk-at-end-of-statement ()
+ (save-excursion
+ (or (= (preceding-char) ?.)
+ (and (= (preceding-char) ?|)
+ (progn
+ (backward-char 1)
+ (while (and (not (bobp)) (looking-back "[ \t\na-zA-Z]"))
+ (skip-chars-backward " \t\n")
+ (skip-chars-backward "a-zA-Z"))
+ (if (= (preceding-char) ?|)
+ (progn
+ (backward-char 1)
+ (skip-chars-backward " \t\n")))
+ (bobp))))))
+
(defun smalltalk-calculate-indent ()
(cond
((smalltalk-at-begin-of-scope) (smalltalk-toplevel-indent t))
@@ -632,7 +647,6 @@ or non-white space, non-comment character"
(= (preceding-char) ?\"))
(search-backward "\"" nil t 2)))
-
(defun smalltalk-current-column ()
"Returns the current column of the given line, regardless of narrowed
buffer."
(save-restriction
- [elpa] externals/smalltalk-mode 57c7cfa 20/34: fix smalltalk-mode.el to work in emacs 22, (continued)
- [elpa] externals/smalltalk-mode 57c7cfa 20/34: fix smalltalk-mode.el to work in emacs 22, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 4160554 12/34: simplify installation of Emacs modes, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 90f07e6 32/34: Move smalltalk-mode autoloads to smalltalk-mode, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 453b7f5 34/34: smalltalk-mode: Fix version and author in header, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode d7f4421 28/34: emacs: Fix the smalltalk-mode mode for emacs 24.2 and later, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 7706ca9 22/34: merge smalltalk-mode bugfixes and tags support, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 83e5fa6 03/34: more updates to the FSF address, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 81dda06 10/34: fix Emacs mode glitches reported by Jeronimo Pellegrini, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode f5a8ddb 13/34: update copyright notices for 2009, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 12cf1d9 19/34: more smalltalk mode improvements from Mathieu, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode aaa7cb0 17/34: improve smalltalk.el detection of a new method's indent,
Stefan Monnier <=
- [elpa] externals/smalltalk-mode a5a661a 30/34: Silence byte-compiler warnings, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode f5845a2 06/34: Emacs interactor mode refinements, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 1521656 01/34: initial import, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode c81b497 21/34: Fix smalltalk-mode.el, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode cd36013 26/34: smalltalk-mode fixes, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 58ef6fd 05/34: improvements to the Emacs mode, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode a1e76a8 27/34: new smalltalk-mode navigational shortcuts, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode d3cea5f 25/34: fix typo, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode 99e6910 33/34: smalltalk-mode: Fix issues spotted by Emacs' checkdoc, Stefan Monnier, 2019/04/09
- [elpa] externals/smalltalk-mode a1d6a5d 29/34: Ensure header and footer match Emacs conventions, Stefan Monnier, 2019/04/09