diff options
| author | Tom Tromey <tom@tromey.com> | 2017-03-18 21:17:37 +0100 |
|---|---|---|
| committer | Tom Tromey <tom@tromey.com> | 2017-03-19 10:44:49 -0600 |
| commit | d7458c28f39e824c95fd6f75c8d26746fc71b226 (patch) | |
| tree | 4054adcbe81059b210817a9f3a97ac5061224b3a | |
| parent | 0de149a9ad04f652cd7a59a9ef67be8a7d86ba76 (diff) | |
| download | rust-mode-d7458c28f39e824c95fd6f75c8d26746fc71b226.tar.gz | |
set open-paren-in-column-0-is-defun-start to nil
Set open-paren-in-column-0-is-defun-start to nil in rust-mode. This
setting is a performance hack in Emacs, at the expense of correctness in
some cases. However, due to the syntax-ppss cache, I doubt whether this
hack is needed for Rust code.
Fixes #107
| -rw-r--r-- | rust-mode-tests.el | 15 | ||||
| -rw-r--r-- | rust-mode.el | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el index 7b29ee1..f7c2a91 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -1876,6 +1876,21 @@ pub fn foo<T, hello(); }")) +(ert-deftest indent-open-paren-in-column0 () + ;; Just pass the same text for the "deindented" argument. This + ;; avoids the extra spaces normally inserted, which would mess up + ;; the test because string contents aren't touched by reindentation. + (let ((text " +const a: &'static str = r#\" +{}\"#; +fn main() { + let b = \"//\"; + let c = \"\"; + +} +")) + (test-indent text text))) + (defun rust-test-matching-parens (content pairs &optional nonparen-positions) "Assert that in rust-mode, given a buffer with the given `content', emacs's paren matching will find all of the pairs of positions diff --git a/rust-mode.el b/rust-mode.el index dfe3e9a..4fadd81 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -1456,6 +1456,7 @@ This is written mainly to be used as `end-of-defun-function' for Rust." (setq-local comment-start "// ") (setq-local comment-end "") (setq-local indent-tabs-mode nil) + (setq-local open-paren-in-column-0-is-defun-start nil) ;; Auto indent on } (setq-local |
