C/C++ Clang Command Adapter
Completion and Diagnostic for C/C++/Objective-C using Clang command.
Important Notes
Clang project officialy starts to implement Language Server named clangd.
(https://github.com/llvm-mirror/clang-tools-extra/tree/master/clangd)
This extension was renamed to C/C++ Clang Command Adapter to avoid confusion, because this extension is unofficial and only parse output of clang command.
Requirements
- Install Clang
- For Max OS X, Clang is installed with Xcode Command Line Tools and
PATH is configured automatically.
- Configure the
PATH environment variable so that you can execute clang command.
- or specify
clang.executable configuration (See the next section for detail)
Configuration
You can use configuration interface of Visual Studio Code. (Press F1 and type User Settings or Workspace Settings)
Common
clang.executable: Clang command or the path to the Clang executable (default: clang)
clang.cflags, clang.cxxflags, clang.objcflags: Compiler Options for C/C++/Objective-C
Completion
clang.completion.enable: Enable/disable completion feature (default: true)
clang.completion.maxBuffer: Tolerable size of clang output for completion (default: 8 * 1024 * 1024 bytes)
clang.completion.triggerChars: Trigger completion when the user types one of the characters (default: [".", ":", ">"])
Diagnostic
clang.diagnostic.enable: Enable/disable diagnostic feature (default: true)
clang.diagnostic.maxBuffer: Tolerable size of clang output for diagnostic. (default: 256 * 1024 bytes)
clang.diagnostic.delay: The delay in millisecond after which diagnostic starts (default: 500)
Variables
Configurations support some variables which are available in tasks.json.
They can be used inside of strings (e.g. "-I${workspaceRoot}/include")
${workspaceRoot}
${cwd}
${env.ENVIRONMENT_VARIABLE}
Note
Since version 0.2.0, clang.diagnosticDelay, clang.enableCompletion, clang.enableDiagnostic is deprecated.
Please update as follows:
clang.enableCompletion -> clang.completion.enable
clang.enableDiagnostic -> clang.diagnostic.enable
clang.diagnosticDelay -> clang.diagnostic.delay
Command
ClangCommandAdapter: Show Executable and Compile Options: Showing Clang executable and compile options for the active editor.
ClangCommandAdapter: Trust Workspace: Trust the current workspace. (see #Security)
ClangCommandAdapter: Untrust Workspace: Untrust the current workspace. (see #Security)
Security
The following settings may cause security issue, if you are opening a malicious workspece.
clang.executable: Arbitrary executables specified in the workspace-level setting will be executed.
clang.cflags, clang.cxxflags, clang.objcflags: Clang command is executed with artibrary options specified in the workspace-level setting.
Therefore, these workspace-level settings are disabled by default.
- To enable these workspace-level settings, please trust the workspace from dialog that appears when you open the file.
- To change trust/untrust status of the current workspace, please use
ClangCommandAdapter: Trust Workspace or ClangCommandAdapter: Untrust Workspace.
Acknowledgements
Resources