https://github.com/sublimelinter/sublimelinter-clang
SublimeLinter plugin for C/C++, using clang
https://github.com/sublimelinter/sublimelinter-clang
Last synced: 10 months ago
JSON representation
SublimeLinter plugin for C/C++, using clang
- Host: GitHub
- URL: https://github.com/sublimelinter/sublimelinter-clang
- Owner: SublimeLinter
- License: mit
- Created: 2018-03-02T20:30:12.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2025-04-24T10:37:33.000Z (10 months ago)
- Last Synced: 2025-04-24T11:34:15.467Z (10 months ago)
- Language: Python
- Size: 27.3 KB
- Stars: 23
- Watchers: 10
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
SublimeLinter-clang
=========================
This linter plugin for [SublimeLinter](https://github.com/SublimeLinter/SublimeLinter3) provides an interface to [clang](http://clang.llvm.org/).
It will be used with files that have the C/C Improved/C++ syntax.
## Installation
SublimeLinter must be installed in order to use this plugin.
Please use [Package Control](https://packagecontrol.io) to install the linter plugin.
Before using this plugin, ensure that `clang` is installed on your system.
- Mac OS X: clang should be already bundled.
- Linux: clang can be easily installed using most package managers.
- Windows: the situation is a little trickier, especially with C++. One way to go is to install [mingw with clang](http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/). Both gcc and clang packages should be installed into the same directory.
Once `clang` is installed, ensure it is in your system PATH so that SublimeLinter can find it.
The docs cover [troubleshooting PATH configuration](http://sublimelinter.com/en/latest/troubleshooting.html#finding-a-linter-executable)
## Settings
We have two settings sections. 'clang' for c files, and 'clang++' to configure the linter for c++ files. E.g.
```
{
"linters":
{
"clang": {
"args": "-fvery-important",
"I": [
"${folder}/3rdparty/bar/include",
"${folder}/3rdparty/baz"
]
},
"clang++": {
"args": "-falso-important"
}
}
},
```
Note: 'args' has the default value '-Wall -fsyntax-only -fno-caret-diagnostics', so make sure to include them when overriding 'args'.
All common settings information can be found here:
- SublimeLinter settings: http://sublimelinter.com/en/latest/settings.html
- Linter settings: http://sublimelinter.com/en/latest/linter_settings.html
Additional settings for SublimeLinter-clang:
|Setting|Description|
|:------|:----------|
|I|A list of directories to be added to the header search paths.|
|isystem|A list of directories to be added to the system header search paths.|
|x|Automatically set depending on the file type.|
SublimeLinter allows [expansion variables](http://sublimelinter.readthedocs.io/en/latest/settings.html#settings-expansion). For example, '${folder}' can be used to specify a path relative to the project folder.
## Troubleshooting
C/C++ linting is not always straightforward. A few things to try when there's (almost) no linting information available:
- Try to compile from the command line, and verify it works.
- The linter might be missing some header files. They can be added with "include_dirs".
- Sometimes clang fails to locate the C++ standard library headers.
Assuming the compilation works when executed via command line, try to compile with `clang++ -v`.
This will display all of the hidden flags clang uses. As a last resort, they can all be added as "args".