bors[bot] d9fb01f803
Merge #2173
2173: MBE: Add TokenId shift in macro_rules r=matklad a=edwin0cheng

As discussed in #2169 , for fixing duplication TokenId during expansion :

> What we can do here is to re-number the tokens during expansion. Specifically:
> * when we create macro_rules, we note the highest id of the token we have as shift>
> * when we expand macro rules, if we need to output a token from definition, we just re-use its id
> * if we need to output a token from the argument, we increase its id by shift (so it's guaranteed to not to collide with anything from the definition)
> * finally, when we have a HirFileId of the expansion, we can look up the original value of shift and classify node to the arg/def by comparing it's id with shift.
> 

This PR implement first 3 points of above solution. 

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2019-11-04 17:21:41 +00:00
2019-10-17 23:14:05 +03:00
2019-07-06 08:33:19 +03:00
2019-11-04 17:21:41 +00:00
2019-11-04 00:23:14 +03:00
2019-10-17 22:37:01 +03:00
2019-11-04 01:14:17 +03:00
2019-10-17 23:14:05 +03:00
2019-10-17 22:54:38 +03:00
2019-11-02 22:19:59 +03:00

Rust Analyzer

Build Status

Rust Analyzer is an experimental modular compiler frontend for the Rust language. It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust. If you want to get involved, check the rls-2.0 working group in the compiler-team repository:

https://github.com/rust-lang/compiler-team/tree/master/content/working-groups/rls-2.0

Work on the Rust Analyzer is sponsored by

Ferrous Systems

Language Server Quick Start

Rust Analyzer is a work-in-progress, so you'll have to build it from source, and you might encounter critical bugs. That said, it is complete enough to provide a useful IDE experience and some people use it as a daily driver.

To build rust-analyzer, you need:

  • latest stable rust for language server itself
  • latest stable npm and VS Code for VS Code extension

To quickly install rust-analyzer with VS Code extension with standard setup (code and cargo in $PATH, etc), use this:

# clone the repo
$ git clone https://github.com/rust-analyzer/rust-analyzer && cd rust-analyzer

# install both the language server and VS Code extension
$ cargo xtask install

# alternatively, install only the server. Binary name is `ra_lsp_server`.
$ cargo xtask install --server

For non-standard setup of VS Code and other editors, see ./docs/user.

Documentation

If you want to contribute to rust-analyzer or just curious about how things work under the hood, check the ./docs/dev folder.

If you want to use rust-analyzer's language server with your editor of choice, check ./docs/user folder. It also contains some tips & tricks to help you be more productive when using rust-analyzer.

Getting in touch

We are on the rust-lang Zulip!

https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frls-2.2E0

License

Rust analyzer is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Description
No description provided
Readme 1.4 GiB
Languages
Rust 96.2%
RenderScript 0.7%
JavaScript 0.6%
Shell 0.6%
Fluent 0.4%
Other 1.3%