1 |
|
2 |
|
3 | const path = require('path');
|
4 | const execFileSync = require('child_process').execFileSync;
|
5 | const CompositeDisposable = require('atom').CompositeDisposable;
|
6 |
|
7 | function execCLI(input) {
|
8 | const cli = path.resolve(__dirname, 'node_modules/es-beautifier/lib/cli.js');
|
9 | return execFileSync('node', [cli], { input, encoding: 'utf8' });
|
10 | }
|
11 |
|
12 | function beautify() {
|
13 | const editor = atom.workspace.getActiveTextEditor();
|
14 | if (editor) {
|
15 | const text = editor.getText();
|
16 | const beautified = execCLI(text);
|
17 | editor.setText(beautified);
|
18 | }
|
19 | }
|
20 |
|
21 | exports.activate = function activate() {
|
22 | this.subscriptions = new CompositeDisposable();
|
23 | this.subscriptions.add(atom.commands.add('atom-text-editor', 'es-beautifier', beautify));
|
24 | };
|
25 |
|
26 | exports.deactivate = function activate() {
|
27 | this.subscriptions.dispose();
|
28 | };
|