Skip to content

Commit b437e74

Browse files
committed
feat(format): add code formatting
Close #143
1 parent 8cd3220 commit b437e74

File tree

6 files changed

+60
-3
lines changed

6 files changed

+60
-3
lines changed

README.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ ng serve
5555
```
5656
Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
5757

58-
You can configure the default HTTP port and the one used by the LiveReload server with two command-line options :
58+
You can configure the default HTTP port and the one used by the LiveReload server with two command-line options :
5959

6060
```bash
6161
ng serve --port 4201 --live-reload-port 49153
@@ -176,6 +176,14 @@ ng github-pages:deploy
176176

177177
Checkout [angular-cli-github-pages addon](https://github.com/IgorMinar/angular-cli-github-pages) docs for more info.
178178

179+
### Formatting code
180+
181+
You can format your app code by running `ng format`.
182+
This will use the `format` npm script that in generated projects uses `clang-format`.
183+
184+
You can modify the `format` script in `package.json` to run whatever formatting tool
185+
you prefer and `ng format` will still run it.
186+
179187

180188
## Known issues
181189

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Language: JavaScript
2+
BasedOnStyle: Google
3+
ColumnLimit: 100

addon/ng2/blueprints/ng2/files/package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@
1010
},
1111
"scripts": {
1212
"start": "ng server",
13-
"postinstall": "typings install --ambient"
13+
"postinstall": "typings install --ambient",
14+
"format": "clang-format -i -style=file --glob=src/**/*.ts"
1415
},
1516
"private": true,
1617
"dependencies": {
1718
"angular2": "2.0.0-beta.6",
19+
"clang-format": "^1.0.35",
1820
"es6-promise": "^3.0.2",
1921
"es6-shim": "^0.33.3",
2022
"reflect-metadata": "0.1.2",

addon/ng2/commands/format.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/* jshint node: true */
2+
'use strict';
3+
4+
var Command = require('ember-cli/lib/models/command');
5+
var FormatTask = require('../tasks/format');
6+
7+
module.exports = Command.extend({
8+
name: 'format',
9+
description: 'Formats code in existing project',
10+
works: 'insideProject',
11+
run: function() {
12+
var formatTask = new FormatTask({
13+
ui: this.ui,
14+
analytics: this.analytics,
15+
project: this.project
16+
});
17+
18+
return formatTask.run();
19+
}
20+
});

addon/ng2/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ module.exports = {
99
'init' : require('./commands/init'),
1010
'install' : require('./commands/install'),
1111
'uninstall' : require('./commands/uninstall'),
12-
'test' : require('./commands/test')
12+
'test' : require('./commands/test'),
13+
'format' : require('./commands/format')
1314
};
1415
}
1516
};

addon/ng2/tasks/format.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/* jshint node: true */
2+
'use strict';
3+
4+
var Promise = require('ember-cli/lib/ext/promise');
5+
var Task = require('ember-cli/lib/models/task');
6+
var exec = Promise.denodeify(require('child_process').exec);
7+
8+
module.exports = Task.extend({
9+
run: function() {
10+
var chalk = require('chalk');
11+
var ui = this.ui;
12+
13+
return exec('npm run format')
14+
.then(function() {
15+
ui.writeLine(chalk.green('Successfully formatted files.'));
16+
})
17+
.catch(function( /*error*/ ) {
18+
ui.writeLine(chalk.red(
19+
'Couldn\'t do \'npm run format\'. Please check this script exists in your package.json.'
20+
));
21+
});
22+
}
23+
});

0 commit comments

Comments
 (0)