233 Commits

Author SHA1 Message Date
Kevin Ballard
9dc667d472 Remove rust_colorcolumn, set textwidth to 99
The latest change to aturon/rust-guidelines states that lines must not
exceed 99 characters. This gets rid of the 80/100 split, so we don't
need to customize colorcolumn amymore.
2014-07-07 22:22:25 -07:00
Kevin Ballard
94cfd1b4ad Set softtabstop, textwidth, and optionally colorcolumn
Setting softtabstop makes <Del> delete 4 spaces as if it were a tab.

Setting textwidth allows comments to be wrapped automatically. It's set
at 80, which is the recommended line length for Rust programs. There are
suggestions that it should be 79, but our current style guide says 80 so
that's what we're matching.

A new setting g:rust_colorcolumn sets colorcolumn as well, to +1,101.
This indicates both the textwidth and the second stricter line length of
100 that our style guide lists.
2014-07-07 22:18:27 -07:00
Kevin Ballard
c6492040b2 Define a new setting g:rust_fold
g:rust_fold allows folding to be enabled. This lets the user turn on
folding without having to define autocommands.
2014-07-07 22:18:27 -07:00
Patrick Walton
7e4e99123a librustc (RFC #34): Implement the new Index and IndexMut traits.
This will break code that used the old `Index` trait. Change this code
to use the new `Index` traits. For reference, here are their signatures:

    pub trait Index<Index,Result> {
        fn index<'a>(&'a self, index: &Index) -> &'a Result;
    }
    pub trait IndexMut<Index,Result> {
        fn index_mut<'a>(&'a mut self, index: &Index) -> &'a mut Result;
    }

Closes #6515.

[breaking-change]
2014-07-07 11:43:23 -07:00
Kevin Ballard
4c1fdd065b vim: set Rust tab conventions 2014-07-04 14:09:47 -07:00
Alexandre Gagnon
d6c988a669 Vim syntax file types and traits cleanup 2014-07-01 00:52:51 -04:00
bors
7689213713 auto merge of #14952 : alexcrichton/rust/const-unsafe-pointers, r=brson
This does not yet change the compiler and libraries from `*T` to `*const T` as
it will require a snapshot to do so.

cc #7362

---

Note that the corresponding RFC, https://github.com/rust-lang/rfcs/pull/68, has not yet been accepted. It was [discussed at the last meeting](https://github.com/rust-lang/rust/wiki/Meeting-weekly-2014-06-10#rfc-pr-68-unsafe-pointers-rename-t-to-const-t) and decided to be accepted, however. I figured I'd get started on the preliminary work for the RFC that will be required regardless.
2014-06-24 04:16:53 +00:00
Piotr Jawniak
0b9e4fcaff Update few files after comparison traits renaming
There were still Total{Ord,Eq} in docs and src/etc
2014-06-22 09:31:39 +02:00
Chris Morgan
b0dff7a191 Vim: highlight invalid characters in char literals. 2014-06-18 17:01:52 -07:00
Chris Morgan
31dfcf9dc1 Vim: highlight escapes for byte literals. 2014-06-18 17:01:52 -07:00
Kevin Ballard
1273f94cbb Add commands :RustEmitIr and :RustEmitAsm 2014-06-18 17:01:22 -07:00
Kevin Ballard
918eda59be Write documentation for the Rust vim plugin 2014-06-18 17:01:22 -07:00
Kevin Ballard
bd3bebcf60 Rename :Run and :Expand to :RustRun and :RustExpand 2014-06-18 17:01:22 -07:00
Kevin Ballard
303cadfbb3 vim: Add :Run and :Expand commands
Define a command :Run to compile and run the current file. This supports
unnamed buffers (by writing to a temporary file). See the comment above
the command definition for notes on usage.

Define <D-r> and <D-R> mappings for :Run to make it easier to invoke in
MacVim.

Define a command :Expand to display the --pretty expanded output for the
current file. This can be configured to use different pretty types. See
the comment above the command definition for notes on usage.

Create an autoload file and put function definitions there to speed up
load time.
2014-06-18 17:01:21 -07:00
Andrew Gallant
b5d9e941f5 Add a Syntastic plugin for Rust. 2014-06-16 18:16:05 -07:00
Alex Crichton
3324257833 rustc: Start accepting *const T
This does not yet change the compiler and libraries from `*T` to `*const T` as
it will require a snapshot to do so.

cc #7362
2014-06-16 16:58:17 -07:00
Richo Healey
553074506e core: rename strbuf::StrBuf to string::String
[breaking-change]
2014-05-24 21:48:10 -07:00
Kevin Ballard
bf0c6d8166 vim: Handle box expressions specially
Attempt to highlight the placement expression in a `box (expr) foo`
expression. Also treat GC as a keyword within the placement expression.

This doesn't work correctly for arbitrary expressions. Notably, this
makes no attempt at balancing delimiters. I believe handling that will
require rewriting the syntax rules to add a region for every pair of
delimiters. That may be a desirable thing to do in the end, because we
can then rewrite our indent rules based on the syntax and get rid of
cindent(), but for the time being, we'll just live with the limitation.
2014-05-20 15:06:53 -07:00
Kevin Ballard
229338d6ac Update rust.vim for the latest prelude/keywords 2014-05-20 13:35:51 -07:00
Kevin Ballard
0381ad4fdf vim: Fix an indentation issue with cindent
cindent handles the following case incorrectly:

impl X {
    b: int,
    //
    c: int,
}

if you try and insert a new line after the `c` declaration.

To fix this, fix the get_line_trimmed() function to work properly, and
then extend GetRustIndent to keep searching backwards until it finds a
non-blank line after trimming. This lets it handle the trailing comma
case properly, as if the comment were never there.

Fixes #14041.
2014-05-08 19:04:23 -07:00
Alex Crichton
948526134b etc: Add box as a keyword to editor configs
This keyword is about to be used much more often than it was a few weeks ago,
it's time to tell editors about the new keyword.
2014-05-06 10:49:35 -07:00
Kevin Ballard
91e61ad967 vim: Fix indentation at global scope after non-semantic ([{/)]}
If an unbalanced [ exists in a string or comment, this should not be
considered when calculating the indent at the top level.

Similarly, when testing for ({/}) to see if we're at the top level to
begin with, strings and comments should be skipped.
2014-05-04 20:16:13 -07:00
Chris Morgan
7266587f3e Fix Vim indent regressions from #13600.
The change in #13600 was incorrect, containing a bad regular expression;
inside an indent function, errors are silently ignored (and the ``~=``
operation will return 0), so it just always failed, causing the cases
that were supposed to be caught to not be caught and making things like
the ``match`` example shown above or struct field definitions regress.

I have fixed the regular expression to what it should have been. This is
still imperfect, of course, not handling cases like where the first
argument to a function is a function call (``foo(bar(),``), but it'll do
for now.
2014-04-24 23:33:28 +10:00
bors
c7553ea173 auto merge of #13609 : richo/rust/str-type-vim, r=alexcrichton
It seems really weird to me when StrSlice and str highlight sanely, but StrBuf doesn't.

I think I added it to the right place.
2014-04-19 02:11:30 -07:00
Richo Healey
3ec9f05534 vim: Add StrBuf as type to hilighting 2014-04-18 16:57:03 -07:00
Brandon Waskiewicz
59f3414a4a Add another case where cindent is correct
When calling a function, or anything with nested parens,
default to cindent's indent. The least error-prone way I
could think of identifying this is to look for a line
that ends with a ',', as well as a non-zero number of
any character except parens before the comma, and
then an open paren.

This will overlap with the previous rule accounting for
function definitions, but that should be fine because
it is also using cindent.
2014-04-18 14:12:50 -04:00
Steven Fackler
6e69712030 Support new attribute syntax in vim syntax file 2014-03-30 12:53:44 -07:00
Flavio Percoco
2e6607a1dd Remove Freeze and add Share in vim's syntax 2014-03-28 17:57:04 +01:00
Flavio Percoco
81ec1f3c18 Rename Pod into Copy
Summary:
So far, we've used the term POD "Plain Old Data" to refer to types that
can be safely copied. However, this term is not consistent with the
other built-in bounds that use verbs instead. This patch renames the Pod
kind into Copy.

RFC: 0003-opt-in-builtin-traits

Test Plan: make check

Reviewers: cmr

Differential Revision: http://phabricator.octayn.net/D3
2014-03-28 10:34:02 +01:00
Daniel Micay
0de6441aa9 rm obsolete references to DeepClone 2014-03-20 01:24:05 -04:00
Alex Crichton
7858065113 std: Rename Chan/Port types and constructor
* Chan<T> => Sender<T>
* Port<T> => Receiver<T>
* Chan::new() => channel()
* constructor returns (Sender, Receiver) instead of (Receiver, Sender)
* local variables named `port` renamed to `rx`
* local variables named `chan` renamed to `tx`

Closes #11765
2014-03-13 13:23:29 -07:00
bors
b349fee46e Merge pull request #12308 from kballard/vim-nested-comments
vim: Tweak how comment nesting works

Reviewed-by: brson
2014-03-01 17:36:41 -08:00
Chris Morgan
498a6060ef Update Vim syntax file last change date. 2014-02-27 21:04:04 -08:00
Chris Morgan
879ac43689 Fix Vim section movements for standard Rust style.
(Expressed another way: make `[[` et al. work with the curly brace at
the end of a line as is standard Rust style, not just at the start is it
is by default in Vim, from K&R style.)

This came out of #11492, where a simpler but less effective technique
was initially proposed; some discussion of the techniques, ways and
means can be found there.

There are still a few caveats:

- Operator-pending mode behaves differently to the standard behaviour:
  if inside curly braces, it should delete up to and including the
  closing of the outermost curly brace (that doesn't seem to me
  consistent with documented behaviour, but it's what it does). Actual
  behaviour (the more logical and consistent, in my opinion): up to the
  start of the next outermost curly brace.

- With folding enabled (`set fdm=syntax`), `[[` and `]]` do not behave
  as they should: the default behaviour treats an entire closed fold as
  one line for these purposes while this code does not (I explicitly
  `set nofoldenable` in the function—the side-effects are worse with
  folds enabled), leading to unexpected behaviour, the worst of which is
  `[[` and/or `]]` not working in visual mode on a closed fold (visual
  mode keeps it at the extreme end of the region line of the folded
  region, so it's always going back to the opening line of that fold and
  immediately being shoved back to the end by visual mode).

- `[[` and `]]` are operating inside comments, whereas the standard
  behaviour skips comments.

- The viewport position is sometimes changed when it should not be
  necessary.
2014-02-27 21:04:04 -08:00
Chris Morgan
0a663a2d31 Update prelude items in Vim syntax. 2014-02-27 21:04:04 -08:00
Chris Morgan
eda5755a9d Downgrade do to a reserved keyword in Vim.
This means it gets highlighted as Error by default.
2014-02-27 21:04:04 -08:00
Chris Morgan
e0088ef80b Highlight the mod in extern mod x; as Error.
Just like the bare keyword `crate` is highlighted as Error (a little
dubious, actually, given macros), `mod` is invalid after `extern`: it's
obsolete syntax.
2014-02-27 21:04:03 -08:00
Kevin Ballard
bc35eb78e2 vim: Tweak how comment nesting works
Don't try to match line comments inside of a comment block. That makes
no sense and can highlight differently for people who override their
highlights.

Similarly, don't match a doc-comment inside of a comment block. It
shouldn't be highlighted differently unless it's actually a doc-comment
(and nested comments are obviously not doc comments).

Fixes #12307.
2014-02-24 21:03:05 -08:00
Huon Wilson
efaf4db24c Transition to new Hash, removing IterBytes and std::to_bytes. 2014-02-24 07:44:10 +11:00
Brendan Zabarauskas
3a9eca3a7b Move std::num::Integer to libnum 2014-02-22 01:45:29 +11:00
bors
b0ce960609 auto merge of #12321 : bjz/rust/remove-real, r=alexcrichton
This is part of the effort to simplify `std::num`, as tracked in issue #10387. It is also a step towards a proper IEEE-754 trait (see #12281).
2014-02-17 22:16:51 -08:00
Brendan Zabarauskas
876eb931dc Remove Real trait and move methods into Float
This is part of the effort to simplify `std::num`, as tracked in issue #10387.
2014-02-17 02:23:33 +11:00
Brendan Zabarauskas
f450b2b379 Remove CloneableTuple and ImmutableTuple traits
These are adequately covered by the Tuple2 trait.
2014-02-17 00:57:56 +11:00
Kevin Ballard
c718e0e254 Add CheckedDiv to vim syntax 2014-02-14 12:02:18 -08:00
Kevin Ballard
84c60186fc Update vim syntax for extern crate 2014-02-14 11:27:53 -08:00
Kevin Ballard
086c0dd33f Delete send_str, rewrite clients on top of MaybeOwned<'static>
Declare a `type SendStr = MaybeOwned<'static>` to ease readibility of
types that needed the old SendStr behavior.

Implement all the traits for MaybeOwned that SendStr used to implement.
2014-02-07 22:31:52 -08:00
bors
3cb72a3655 auto merge of #11672 : bjz/rust/remove-times, r=brson
`Times::times` was always a second-class loop because it did not support the `break` and `continue` operations. Its playful appeal (which I liked) was then lost after `do` was disabled for closures. It's time to let this one go.
2014-01-29 20:06:36 -08:00
Brendan Zabarauskas
729060dbb9 Remove Times trait
`Times::times` was always a second-class loop because it did not support the `break` and `continue` operations. Its playful appeal was then lost after `do` was disabled for closures. It's time to let this one go.
2014-01-30 14:52:25 +11:00
Virgile Andreani
2d60691eb7 Rename CopyableTuple to CloneableTuple 2014-01-28 23:51:52 +01:00
Virgile Andreani
0c081afabd Rename ImmutableCopyableVector to ImmutableCloneableVector 2014-01-28 23:51:52 +01:00