diff --git a/lib/index.js b/lib/index.js index fcb59c2..51dd02b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,5 +1,6 @@ const cp = require("child_process") const os = require("os") +const fs = require("fs") const path = require("path") const { CompositeDisposable, Disposable } = require("atom") const { AutoLanguageClient } = require("atom-languageclient") @@ -450,6 +451,18 @@ class RustLanguageClient extends AutoLanguageClient { params.initializationOptions = params.initializationOptions || {} // Don't build straight after initialize, wait for first `workspace/didChangeConfiguration` params.initializationOptions.omitInitBuild = true + + let rlsConfigPath = path.join(projectPath, "rust-analyzer.json") + + if (fs.existsSync(rlsConfigPath)) { + try { + let options = fs.readFileSync(rlsConfigPath) + Object.assign(params.initializationOptions, JSON.parse(options)) + } catch(e) { + atom.notifications.addError("Error reading rust-analyzer config file\n", e) + } + } + return params }