286: move thread worker to a separate crate r=matklad a=matklad
Going to tackle https://github.com/rust-analyzer/rust-analyzer/issues/243, this is a refactoring towards that goal
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
284: By default, log only to stderr, and not to disk. r=matklad a=eminence
This fixes a common problem when running under VS Code, the user doesn't have permissions to create a `log` directory in the CWD.
The old behavior can be re-enabled by setting `RA_INTERNAL_MODE=1`
Fixes#282
Co-authored-by: Andrew Chin <achin@eminence32.net>
This fixes a common problem when running under VS Code, the user
doesn't have permissions to create a `log` directory in the CWD.
The old behavior can be re-enabled by setting RA_INTERNAL_MODE=1
280: Fixed cast expression parsing in ra_syntax. r=matklad a=ruabmbua
Fixes#279
Related to https://github.com/rust-analyzer/rust-analyzer/pull/273
The cast expression expected any type via types::type_() function,
but the language spec does only allow TypeNoBounds (types without direct extra bounds
via `+`).
**Example:**
```rust
fn test() {
6i8 as i32 + 5;
}
```
This fails, because the types::type_() function which should parse the type after the
as keyword is greedy, and takes the plus sign after path types as extra type bounds.
My proposed fix is to replace the not implemented `type_no_plus()` just calls (`type_()`)
function, which is used at several places. The replacement is `type_with_bounds_cond(p: &mut Parser, allow_bounds: bool)`, which passes the condition to relevant sub-parsers.
This function is then called by `type_()` and the new public `type_no_bounds()`.
Co-authored-by: Roland Ruckerbauer <roland.rucky@gmail.com>
The cast expression expected any type via types::type_() function,
but the language spec does only allow TypeNoBounds (types without direct extra bounds
via `+`).
**Example:**
```rust
fn test() {
6i8 as i32 + 5;
}
```
This fails, because the types::type_() function which should parse the type after the
as keyword is greedy, and takes all plus sign after path types as extra.
My proposed fix is to replace the not implemented `type_no_plus()` just calls (`type_()`)
function, which is used at several places. The replacement is `type_with_bounds_cond(p: &mut Parser, allow_bounds: bool)`, which passes the condition to relevant sub-parsers.
This function is then called by `type_()` and the new public `type_no_bounds()`.
275: Update ARCHITECTURE.md r=matklad a=h-michael
I am still not familiar with the code base, so mostly I quote crate's comments.
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
274: Add crates/*/target to gitignore r=matklad a=h-michael
I am using rls and rust-analyzer together.
Rls creates cache in `crates/*/target`, so I would like to add it to gitignore as well.
Co-authored-by: Hirokazu Hata <h.hata.ai.t@gmail.com>
272: use \b as word boundary when expanding single word in comments r=matklad a=vemoo
as discused in #266
Co-authored-by: Bernardo <berublan@gmail.com>
271: Implement format hook r=matklad a=DJMcNab
Tentatively: fixes#155.
However, this does add all changes in staged files, which might not be desirable. However, I think we can't solve that without explicit support in rustfmt for it, so it should be fine.
Co-authored-by: DJMcNab <36049421+djmcnab@users.noreply.github.com>