diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-02-19 09:43:46 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-02-19 09:43:46 +0000 |
commit | 8a3698ada05f858ff98cbdf00df9562bdddc50c4 (patch) | |
tree | 980dc30476ccc33e4b973196a0e345690958a58d | |
parent | aeb626920c8050176d9d2dad9b2bae113e9bc419 (diff) | |
download | bcm5719-llvm-8a3698ada05f858ff98cbdf00df9562bdddc50c4.tar.gz bcm5719-llvm-8a3698ada05f858ff98cbdf00df9562bdddc50c4.zip |
[clangd] Add "clangd.trace" VSCode setting to enable tracing.
Summary:
Setting the CLANGD_TRACE environment variable directly is awkward with VSCode's
"reload from the command palette" workflow.
Reviewers: ilya-biryukov
Subscribers: klimek, jkorous-apple, ioeric, cfe-commits
Differential Revision: https://reviews.llvm.org/D43385
llvm-svn: 325477
-rw-r--r-- | clang-tools-extra/clangd/clients/clangd-vscode/package.json | 8 | ||||
-rw-r--r-- | clang-tools-extra/clangd/clients/clangd-vscode/src/extension.ts | 11 |
2 files changed, 14 insertions, 5 deletions
diff --git a/clang-tools-extra/clangd/clients/clangd-vscode/package.json b/clang-tools-extra/clangd/clients/clangd-vscode/package.json index e6fb4b89cfd..e11854aa7f6 100644 --- a/clang-tools-extra/clangd/clients/clangd-vscode/package.json +++ b/clang-tools-extra/clangd/clients/clangd-vscode/package.json @@ -43,8 +43,8 @@ "@types/mocha": "^2.2.32" }, "repository": { - "type": "svn", - "url": "http://llvm.org/svn/llvm-project/clang-tools-extra/trunk/clangd/clients/clangd-vscode/" + "type": "svn", + "url": "http://llvm.org/svn/llvm-project/clang-tools-extra/trunk/clangd/clients/clangd-vscode/" }, "contributes": { "configuration": { @@ -68,6 +68,10 @@ "type": "boolean", "default": true, "description": "Whether or not to send file events to clangd (File created, changed or deleted). This can be disabled for performance consideration." + }, + "clangd.trace": { + "type": "string", + "description": "Names a file that clangd should log a performance trace to, in chrome trace-viewer JSON format." } } } diff --git a/clang-tools-extra/clangd/clients/clangd-vscode/src/extension.ts b/clang-tools-extra/clangd/clients/clangd-vscode/src/extension.ts index 58c2c1806fb..355c855dd9a 100644 --- a/clang-tools-extra/clangd/clients/clangd-vscode/src/extension.ts +++ b/clang-tools-extra/clangd/clients/clangd-vscode/src/extension.ts @@ -16,11 +16,16 @@ function getConfig<T>(option: string, defaultValue?: any) : T { * your extension is activated the very first time the command is executed */ export function activate(context: vscode.ExtensionContext) { - const clangdPath = getConfig<string>('path'); - const clangdArgs = getConfig<string[]>('arguments'); const syncFileEvents = getConfig<boolean>('syncFileEvents', true); - const serverOptions: vscodelc.ServerOptions = { command: clangdPath, args: clangdArgs }; + const clangd: vscodelc.Executable = { + command: getConfig<string>('path'), + args: getConfig<string[]>('arguments') + }; + const traceFile = getConfig<string>('trace'); + if (traceFile != null) + clangd.options = {env: {CLANGD_TRACE: traceFile}}; + const serverOptions: vscodelc.ServerOptions = clangd; const filePattern: string = '**/*.{' + ['cpp', 'c', 'cc', 'cxx', 'c++', 'm', 'mm', 'h', 'hh', 'hpp', 'hxx', 'inc'].join() + '}'; |