diff --git a/package-lock.json b/package-lock.json index f173c00..43ca77a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "ccls", - "version": "0.1.27", + "version": "0.1.28", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d204447..82e87a9 100644 --- a/package.json +++ b/package.json @@ -633,6 +633,11 @@ "default": 15, "description": "Number of lines of the initializer / macro definition showed in hover." }, + "ccls.index.reloadDatabaseOnChange": { + "type": "boolean", + "default": true, + "description": "Reload the compilation database when it is modified." + }, "ccls.codeLens.renderInline": { "type": "boolean", "default": false, diff --git a/src/serverContext.ts b/src/serverContext.ts index 07b2ccc..24f6dc3 100644 --- a/src/serverContext.ts +++ b/src/serverContext.ts @@ -292,6 +292,14 @@ export class ServerContext implements Disposable { } this._dispose.push(commands.registerCommand("ccls.reload", this.reloadIndex, this)); + + if(config.get("index.reloadDatabaseOnChange", true)) { + const db_watcher = workspace.createFileSystemWatcher(this.cwd + "/compile_commands.json", false, false, false); + this._dispose.push(db_watcher); + db_watcher.onDidChange((e: Uri) => { + this.client.sendNotification("workspace/didChangeConfiguration"); + }); + } } public async stop() {