mirror of
https://github.com/dense-analysis/ale.git
synced 2026-01-01 09:03:29 +08:00
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.
This commit is contained in:
@@ -7,12 +7,19 @@ After:
|
||||
Execute(The default executable path should be correct):
|
||||
AssertLinter 'rust-analyzer', ale#Escape('rust-analyzer')
|
||||
|
||||
Execute(The project root should be detected correctly):
|
||||
Execute(The project root should be detected correctly in cargo projects):
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('../test-files/rust/test.rs')
|
||||
call ale#test#SetFilename('../test-files/rust/cargo/testfile.rs')
|
||||
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/rust')
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/rust/cargo')
|
||||
|
||||
Execute(The project root should be detected correctly in non-cargo projects):
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('../test-files/rust/rust-project/testfile.rs')
|
||||
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/rust/rust-project')
|
||||
|
||||
Execute(Should accept configuration settings):
|
||||
AssertLSPConfig {}
|
||||
|
||||
@@ -20,9 +20,9 @@ Execute(The toolchain should be ommitted if not given):
|
||||
Execute(The project root should be detected correctly):
|
||||
AssertLSPProject ''
|
||||
|
||||
call ale#test#SetFilename('../test-files/rust/test.rs')
|
||||
call ale#test#SetFilename('../test-files/rust/cargo/testfile.rs')
|
||||
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/rust')
|
||||
AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/rust/cargo')
|
||||
|
||||
Execute(Should accept configuration settings):
|
||||
AssertLSPConfig {}
|
||||
|
||||
@@ -13,9 +13,9 @@ Execute(The options should be configurable):
|
||||
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/cargo/test.rs')
|
||||
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/cargo/target/debug/deps'))
|
||||
\ . ' -L ' . ale#Escape(ale#path#GetAbsPath(g:dir, '../test-files/cargo/target/release/deps'))
|
||||
\ . ' -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'))
|
||||
\ . ' -'
|
||||
|
||||
0
test/test-files/rust/rust-project/rust-project.json
Normal file
0
test/test-files/rust/rust-project/rust-project.json
Normal file
0
test/test-files/rust/rust-project/testfile.rs
Normal file
0
test/test-files/rust/rust-project/testfile.rs
Normal file
Reference in New Issue
Block a user