ale/test/linter/test_rustc.vader
Felix Maurer 80dcd648d3
rust-analyzer for non-Cargo projects (#4118)
* rust-analyzer in non-cargo projects

rust-analyzer can also be used in non-cargo projects. This requires a
rust-project.json file in the project root [1].

Make the rust-analyzer linter search for a rust-project.json file if no
Cargo.toml file could be found.

[1]: https://rust-analyzer.github.io/manual.html#non-cargo-based-projects

* Document rust-analyzer without cargo

* Test rust-analyzer with non-cargo projects

Change the other rust tests to match the new directory structure of the
test files.
2022-03-23 10:56:29 +09:00

22 lines
831 B
Plaintext

Before:
call ale#assert#SetUpLinterTest('rust', 'rustc')
After:
call ale#assert#TearDownLinterTest()
Execute(The default command should be correct):
AssertLinter 'rustc', 'rustc --error-format=json --emit=mir -o /dev/null -'
Execute(The options should be configurable):
let b:ale_rust_rustc_options = '--foo'
AssertLinter 'rustc', 'rustc --error-format=json --foo -'
Execute(Some default paths should be included when the project is a Cargo project):
call ale#test#SetFilename('../test-files/rust/cargo/testfile.rs')
AssertLinter 'rustc', 'rustc --error-format=json --emit=mir -o /dev/null'
\ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, '../test-files/rust/cargo/target/debug/deps'))
\ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, '../test-files/rust/cargo/target/release/deps'))
\ . ' -'