vscode-clang
vscode-clang copied to clipboard
Completion and Diagnostic for C/C++/Objective-C using Clang
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
PATHis configured automatically.
- For Max OS X, Clang is installed with Xcode Command Line Tools and
- Configure the
PATHenvironment variable so that you can executeclangcommand.- or specify
clang.executableconfiguration (See the next section for detail)
- or specify
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 * 1024bytes)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 * 1024bytes)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.enableclang.enableDiagnostic->clang.diagnostic.enableclang.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 WorkspaceorClangCommandAdapter: Untrust Workspace.
Acknowledgements
- Regexp for parsing completion results of Clang is based autocomplete-clang.
Resources
- Repository: https://github.com/mitaki28/vscode-clang
- Support: https://github.com/mitaki28/vscode-clang/issues