Commit Graph

71 Commits

Author SHA1 Message Date
Micah Chalmer
d92fdb27cb Emacs: Remove README warning of old whitespace bug
The incompatibility of rust-mode with global-whitespace-mode warned
about in the README was actually fixed by commit 581b3db3b3.  Remove the
warning from the README and close #3994.
2014-03-02 22:02:18 -05:00
Micah Chalmer
04dc3e4985 Fix typo in emacs ERT test 2014-02-22 23:35:33 -05:00
Micah Chalmer
55b3c1917f Emacs: indent relative to enclosing block
This changes the indent to calculate positions relative to the enclosing
block (or braced/parenthesized expression), rather than by an absolute
nesting level within the whole file.  This allows things like this to
work:

    let x =
        match expr {
            Pattern => ...
        }

With the old method, only one level of nesting would be added within the
match braces, so "Pattern" would have ended up aligned with the match.

The other change is that multiple parens/braces on the same line only
increase the indent once.  This is a very common case for passing
closures/procs.  The absolute nesting method would do this:

    spawn(proc() {
            // Indented out two indent levels...
    })

whereas the code in this commit does this:

    spawn(proc() {
        // Indented out only one level...
    })
2014-02-22 23:06:46 -05:00
Micah Chalmer
45008f9b3e Emacs: stay at the correct position when indenting
When indenting a non-blank line, stay at the same cursor position
relative to the content after indenting.
2014-02-22 22:55:30 -05:00
Micah Chalmer
7fbcda1c65 Fix emacs indentation of multi-line match patterns
Aligns to the same column if the previous line ends in a single '|' (but
not a '||').
2014-02-22 13:11:48 -05:00
Derek Guenther
b609d57b02 Added more scripts to tidy check 2014-02-17 10:36:47 -06:00
Alex Crichton
a41b0c2529 extern mod => extern crate
This was previously implemented, and it just needed a snapshot to go through
2014-02-14 22:55:21 -08:00
Kevin Ballard
fff12220af Add crate to emacs and kate modefiles 2014-02-14 14:37:07 -08:00
John Louis Walker
8271ba8239 Fix rust-align-to-expr-after-brace, closes #11239.
forward-to-word is undefined, and so Emacs would throw errors in
rust-align-to-expr-after-brace. This change yields the expected
behavior discussed in the issue.
2013-12-31 14:19:36 -05:00
Micah Chalmer
d7c949368c Add "proc" as keyword to emacs mode 2013-12-14 18:00:21 -05:00
S Pradeep Kumar
04d852aeb1 Add defun motions for rust-mode.
Specifically, we can now use:
+ beginning-of-defun
+ end-of-defun
+ mark-defun

where "defun" means a Rust item.

+ Add tests in rust-mode-tests.el
+ Fix indentation in rust-mode-tests.el
+ Add support for trait to Imenu
2013-12-09 14:36:56 +09:00
S Pradeep Kumar
48b289fec4 Add Imenu support for rust-mode.
+ Delete trailing whitespace.
2013-12-04 19:04:47 +09:00
Micah Chalmer
5d24a1ae45 Fix single-line-style paragraph fills with code immediately before or after 2013-09-28 17:40:24 -04:00
Brian Anderson
c1d64297f0 Add 'continue' keyword to emacs, vim, gedit, kate 2013-09-26 15:04:43 -07:00
Lindsey Kuper
462dcc8e7a Minor cleanup and formatting tweaks to the rust-mode README 2013-09-13 20:46:41 -04:00
Micah Chalmer
a4697342f7 Cover all cases for padding in paragraph fills as intended 2013-09-07 00:39:38 -04:00
Micah Chalmer
be4f19ae7c Fix regression of multi-line statement indents 2013-09-07 00:38:23 -04:00
Micah Chalmer
fcf18786b4 Add ERT tests 2013-09-06 01:02:20 -04:00
Micah Chalmer
377b2c77e4 Add paragraph fill and auto-fill for multi-line comments 2013-09-06 01:02:20 -04:00
Micah Chalmer
1ac7c5cc5a Add custom group for rust-mode 2013-09-06 01:02:20 -04:00
Micah Chalmer
76e95a0264 Indent return type to align with arguments 2013-09-06 01:02:19 -04:00
Micah Chalmer
9ef0b9c0d6 Allow indenting to align struct fields after curly brace 2013-09-06 01:02:19 -04:00
Micah Chalmer
1c527dfcd4 Indent correctly after opening square bracket 2013-09-06 01:02:19 -04:00
Micah Chalmer
e7d5af8ec7 Fix glitches with struct field aligned indents 2013-09-05 22:18:29 -04:00
Micah Chalmer
7a42dd8074 Align field names in struct expressions with fields on same line as the opening curly brace 2013-08-30 02:04:08 -04:00
Micah Chalmer
70bc1637b8 Multiline comments with leading *s line up the *s 2013-08-30 02:04:01 -04:00
Micah Chalmer
0b9dc80d49 One indent after open paren with no argument 2013-08-29 23:28:36 -04:00
Micah Chalmer
20def31768 Correct indent with trailing spaces/comments on previous line 2013-08-29 23:12:08 -04:00
Anders Kaseorg
60e84809f0 rust-mode: Default rust-indent-offset to 4, not default-tab-width
default-tab-width is standardly 8, but most programmers and style
guides prefer an indentation width smaller than that.  Rust itself
uses 4 space indents.  Most other Emacs modes define the indentation
width as 4 or 2 spaces, independently of the width of a Tab character.
Depending on default-tab-width makes especially little sense for
rust-mode because it sets indent-tabs-mode to nil.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2013-08-28 18:09:02 -04:00
Felix S. Klock II
1f13eab3c0 fix typo in rust-mode.el 2013-08-27 12:48:51 +02:00
Felix S. Klock II
9d8897ba60 extend file regexp to match files with embedded spaces. 2013-08-26 02:28:27 +02:00
Felix S. Klock II
fe7092dafb revisions to emacs compilation regexp, more readable and robust. 2013-08-25 14:38:12 +02:00
Felix S. Klock II
521fb049be compilation error regexp specific to rustc.
Fix #6887.
2013-08-25 14:15:03 +02:00
Paul Collins
3596f666bb rust-mode: make indentation customizable
Add new variable rust-indent-offset, defaulting to
the old value, and use it.
2013-08-08 19:25:21 +12:00
Huon Wilson
cdad7f6f3b etc: add the in keyword to the emacs mode. 2013-08-03 18:31:23 +10:00
Graydon Hoare
581b3db3b3 rewrite rust-mode to use font-lock-mode and emacs builtin syntax analysis 2013-07-24 17:11:04 -07:00
Felix S. Klock II
f98f3b0401 Note incompatibility with global-whitespace-mode.
See #3994.
2013-07-22 12:27:46 +02:00
Uwe Dauernheim
d314090b85 Fix typo 2013-04-26 14:47:15 +03:00
Uwe Dauernheim
7a9037bfde Allow customization of indent offset 2013-04-26 00:06:57 +03:00
Jed Davis
8453f3110c rust-mode.el uses the 'cl macros, so it should actually require them
Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
2013-03-08 12:51:16 -08:00
Huon Wilson
4bf94a7b30 Emacs: Update emacs mode to be more similar to the vim mode.
Copy the keyword list, and add `self` so that it is somewhat highlighted
(being liberal with the correct categories).
2013-02-25 23:42:46 +11:00
Niko Matsakis
ad8b437ada Make 'foo use font-lock-builtin-face, like module names, and make capitalized identifiers optionally use font-lock-type-face 2013-02-16 08:01:10 -05:00
Niko Matsakis
1ef8c48a20 emacs mode: Highlight 'foo as a lifetime, not a character constant. 2013-02-16 08:01:10 -05:00
Jed Davis
e93a58d526 rust-mode.el uses the 'cl macros, so it should actually require them
Without this change, rust-mode doesn't work if 'cl hasn't been required
by something else, apparently.  I'm not entirely sure what changed such
that I started seeing this problem instead of not, but maybe the emacs
world has been making progress towards not loading 'cl at runtime if
it's only needed at compile time.
2013-02-10 11:23:10 -08:00
Brian Anderson
6c15dd6d82 rust-mode: Add 'ref' keyword 2012-09-28 12:41:34 -07:00
Brian Anderson
49af969e2c rust-mode: Add pub and priv 2012-09-21 18:25:51 -07:00
Niko Matsakis
d5b3e44b47 emacs mode: include use as a keyword 2012-09-06 12:31:33 -07:00
Niko Matsakis
785c524d3e change to 4-space indents everywhere 2012-08-27 11:54:22 -07:00
Max Penet
d0c57c39d2 add auto-mode-alist to autoloads 2012-08-16 10:06:18 +02:00
Max Penet
527c21c10e fix indentation 2012-08-16 08:34:48 +02:00