diff options
| author | Felix S Klock II <pnkfelix@pnkfx.org> | 2015-03-09 02:15:35 +0100 |
|---|---|---|
| committer | Felix S Klock II <pnkfelix@pnkfx.org> | 2015-03-09 02:15:35 +0100 |
| commit | cb5781d872fb921346d43f3b2cb29f2cccf262f0 (patch) | |
| tree | aab82822d10ee2a90358e3fdeb5800d3a6958487 | |
| parent | b15b0eb15da170610784fde7eaa288d39e63f723 (diff) | |
| parent | f2d709e55942c5c762efd315357b805ece57abfc (diff) | |
| download | rust-mode-cb5781d872fb921346d43f3b2cb29f2cccf262f0.tar.gz | |
Merge pull request #46 from MicahChalmer/fix-fill-region
Make fill-region work correctly in comments
| -rw-r--r-- | rust-mode-tests.el | 17 | ||||
| -rw-r--r-- | rust-mode.el | 3 |
2 files changed, 15 insertions, 5 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el index 3510d69..b94f041 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -42,9 +42,9 @@ original point-pos manip-func expected (buffer-string))))) (defun test-fill-paragraph (unfilled expected &optional start-pos end-pos) - "We're going to run through many scenarios here--the point should be able to be anywhere from the start-pos (defaults to 1) through end-pos (defaults to the length of what was passed in) and (fill-paragraph) should return the same result. + "We're going to run through many scenarios here--the point should be able to be anywhere from the start-pos (defaults to 1) through end-pos (defaults to the length of what was passed in) and (fill-paragraph) should return the same result. It should also work with fill-region from start-pos to end-pos. -Also, the result should be the same regardless of whether the code is at the beginning or end of the file. (If you're not careful, that can make a difference.) So we test each position given above with the passed code at the beginning, the end, neither and both. So we do this a total of (end-pos - start-pos)*4 times. Oy." +Also, the result should be the same regardless of whether the code is at the beginning or end of the file. (If you're not careful, that can make a difference.) So we test each position given above with the passed code at the beginning, the end, neither and both. So we do this a total of 1 + (end-pos - start-pos)*4 times. Oy." (let* ((start-pos (or start-pos 1)) (end-pos (or end-pos (length unfilled))) (padding "\n \n") @@ -69,7 +69,16 @@ Also, the result should be the same regardless of whether the code is at the beg (lambda () (let ((fill-column rust-test-fill-column)) (fill-paragraph))) - (concat padding-beginning expected padding-end))))))) + (concat padding-beginning expected padding-end))))) + ;; In addition to all the fill-paragraph tests, check that it works using fill-region + (rust-test-manip-code + unfilled + start-pos + (lambda () + (let ((fill-column rust-test-fill-column)) + (fill-region start-pos end-pos))) + expected) + )) (ert-deftest fill-paragraph-top-level-multi-line-style-doc-comment-second-line () (test-fill-paragraph @@ -223,7 +232,7 @@ fn bar() { }" /// This is my comment. This is /// more of my comment. This is /// even more. -fn bar() { }" 14 67)) +fn bar() { }" 14 85)) (defun test-auto-fill (initial position inserted expected) (rust-test-manip-code diff --git a/rust-mode.el b/rust-mode.el index 9a6eb5f..77fa349 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -508,7 +508,7 @@ (funcall body))) (defun rust-find-fill-prefix () - (rust-with-comment-fill-prefix (lambda () fill-prefix))) + (rust-in-comment-paragraph (lambda () (rust-with-comment-fill-prefix (lambda () fill-prefix))))) (defun rust-fill-paragraph (&rest args) "Special wrapping for `fill-paragraph' to handle multi-line comments with a * prefix on each line." @@ -704,6 +704,7 @@ This is written mainly to be used as `end-of-defun-function' for Rust." (setq-local fill-paragraph-function 'rust-fill-paragraph) (setq-local fill-forward-paragraph-function 'rust-fill-forward-paragraph) (setq-local adaptive-fill-function 'rust-find-fill-prefix) + (setq-local adaptive-fill-first-line-regexp "") (setq-local comment-multi-line t) (setq-local comment-line-break-function 'rust-comment-indent-new-line) (setq-local imenu-generic-expression rust-imenu-generic-expression) |
