summaryrefslogtreecommitdiff
path: root/rust-mode-tests.el
diff options
context:
space:
mode:
authorMicah Chalmer <micah@micahchalmer.net>2014-03-11 20:23:32 -0400
committerAlex Crichton <alex@alexcrichton.com>2014-03-12 15:01:25 -0700
commit2d12c3ed21b581d44376d8f068ddfdaad4a901e9 (patch)
tree1e8c2d3180ac0120a716e99baa264f554eeee6e1 /rust-mode-tests.el
parent4f4015623453d4c4fb54d0a72d5f066c6cfe42fc (diff)
downloadrust-mode-2d12c3ed21b581d44376d8f068ddfdaad4a901e9.tar.gz
Emacs: always jump the cursor if needed on indent
The rust-mode-indent-line function had a check, which ran after all the calculations for how to indent had already happened, that skipped actually performing the indent if the line was already at the right indentation. Because of that, the cursor did not jump to the indentation if the line wasn't changing. This was particularly annoying if there was nothing but spaces on the line and you were at the beginning of it--it looked like the indent just wasn't working. This removes the check and adds test cases to cover this.
Diffstat (limited to 'rust-mode-tests.el')
-rw-r--r--rust-mode-tests.el43
1 files changed, 42 insertions, 1 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index 63c1a07..a4e8379 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -570,6 +570,11 @@ fn indenting_middle_of_line() {
pull_me_back_in();
}
}
+
+fn indented_already() {
+
+ // The previous line already has its spaces
+}
"
;; Symbol -> (line column)
@@ -596,7 +601,15 @@ fn indenting_middle_of_line() {
(after-whitespace-indent-start (13 1))
(after-whitespace-indent-target (13 8))
(middle-pull-indent-start (15 19))
- (middle-pull-indent-target (15 12))))
+ (middle-pull-indent-target (15 12))
+ (blank-line-indented-already-bol-start (20 0))
+ (blank-line-indented-already-bol-target (20 4))
+ (blank-line-indented-already-middle-start (20 2))
+ (blank-line-indented-already-middle-target (20 4))
+ (nonblank-line-indented-already-bol-start (21 0))
+ (nonblank-line-indented-already-bol-target (21 4))
+ (nonblank-line-indented-already-middle-start (21 2))
+ (nonblank-line-indented-already-middle-target (21 4))))
(defun rust-get-buffer-pos (pos-symbol)
"Get buffer position from POS-SYMBOL.
@@ -793,3 +806,31 @@ All positions are position symbols found in `rust-test-positions-alist'."
'middle-pull-indent-start
'middle-pull-indent-target
#'indent-for-tab-command))
+
+(ert-deftest indent-line-blank-line-indented-already-bol ()
+ (rust-test-motion
+ rust-test-indent-motion-string
+ 'blank-line-indented-already-bol-start
+ 'blank-line-indented-already-bol-target
+ #'indent-for-tab-command))
+
+(ert-deftest indent-line-blank-line-indented-already-middle ()
+ (rust-test-motion
+ rust-test-indent-motion-string
+ 'blank-line-indented-already-middle-start
+ 'blank-line-indented-already-middle-target
+ #'indent-for-tab-command))
+
+(ert-deftest indent-line-nonblank-line-indented-already-bol ()
+ (rust-test-motion
+ rust-test-indent-motion-string
+ 'nonblank-line-indented-already-bol-start
+ 'nonblank-line-indented-already-bol-target
+ #'indent-for-tab-command))
+
+(ert-deftest indent-line-nonblank-line-indented-already-middle ()
+ (rust-test-motion
+ rust-test-indent-motion-string
+ 'nonblank-line-indented-already-middle-start
+ 'nonblank-line-indented-already-middle-target
+ #'indent-for-tab-command))