https://github.com/angular/gulp-clang-format
https://github.com/angular/gulp-clang-format
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/angular/gulp-clang-format
- Owner: angular
- License: apache-2.0
- Archived: true
- Created: 2015-03-17T16:22:40.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2021-08-04T13:57:04.000Z (almost 5 years ago)
- Last Synced: 2024-05-09T10:10:14.643Z (about 2 years ago)
- Language: JavaScript
- Size: 210 KB
- Stars: 9
- Watchers: 15
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gulp-clang-format [](https://github.com/angular/gulp-clang-format/actions/workflows/node.js.yml)
Gulp plugin to check that code is properly formatted, according to clang-format.
If the code differs from how clang-format would format it, this prints a warning
to the build output, as well as a command to run that formats the file in-place.
## Usage
Sample gulpfile.js:
```js
var format = require('gulp-clang-format');
var srcsToFmt = ['path/**/*.js'];
gulp.task('check-format', function() {
return gulp.src(srcsToFmt)
.pipe(format.checkFormat());
});
gulp.task('format', function() {
// The base option ensures the glob doesn't strip prefixes
return gulp.src(srcsToFmt, {base: '.'})
.pipe(format.format())
.pipe(gulp.dest('.'));
});
```
### Promoting warnings to errors
If you want to enforce the formatting, so that other team members don't introduce
code that gives you a warning, you can turn them into build errors by acting on
the 'warning' event. For example, this task exits the build immediately:
```js
var format = require('gulp-clang-format');
gulp.task('check-format', function() {
return gulp.src('*.js')
.pipe(format.checkFormat('file'))
.on('warning', function(e) {
process.stdout.write(e.message);
process.exit(1);
});
});
```
## Options
The `format()` and `checkFormat()` both accept two options: `opt_clangStyle` and
`opt_clangFormat`. `checkFormat()` also accepts a third option,
`opt_gulpOptions`.
### opt_clangStyle
An optional parameter indicating the clang-format style to use. By default, it
applies the "Google" style.
The parameter is passed to the -style argument of clang-format. See the docs
here: http://clang.llvm.org/docs/ClangFormatStyleOptions.html
The recommended value is the string 'file', this means that clang-format will
look for a .clang-format file in your repository. This allows you to keep the
formatting consistent with other developers.
### opt_clangFormat
The resolved `clang-format` module to use. Useful to pass a specific
`clang-format` version to the task.
```js
var format = require('gulp-clang-format');
var clangFormat = require('clang-format');
gulp.task('check-format', function() {
return gulp.src('*.js')
.pipe(format.checkFormat('file', clangFormat));
});
```
### opt_gulpOptions
Options for the gulp operation. Supported options are
* `verbose`, which causes a diff of all changed files to be printed.
* `fail`, which causes the task to emit an `error` instead of a `warning`.
```js
var format = require('gulp-clang-format');
gulp.task('check-format', function() {
return gulp.src('*.js')
.pipe(format.checkFormat(undefined, undefined, {verbose: true, fail: true}));
});
```