1
0
mirror of https://github.com/chinchang/web-maker.git synced 2025-01-29 10:37:59 +01:00

add prettier inside worker on shift-tab

This commit is contained in:
Kushagra Gour 2018-10-25 16:15:47 +05:30
parent 247fcaccc1
commit f49c9a1f68
7 changed files with 40 additions and 20 deletions

View File

@ -17,7 +17,7 @@ function minifyJs(fileName) {
const content = fs.readFileSync(fileName, 'utf8');
const minifiedContent = babelMinify(
content,
{ mangle: content.length < 500000 },
{ mangle: content.length < 700000 },
{ sourceMaps: false }
).code;
fs.writeFileSync(fileName, minifiedContent);
@ -39,6 +39,8 @@ gulp.task('copyFiles', function() {
.src('src/lib/codemirror/mode/**/*')
.pipe(gulp.dest('app/lib/codemirror/mode')),
gulp.src('src/lib/transpilers/*').pipe(gulp.dest('app/lib/transpilers')),
gulp.src('src/lib/prettier-worker.js').pipe(gulp.dest('app/lib/')),
gulp.src('src/lib/prettier/*').pipe(gulp.dest('app/lib/prettier')),
gulp.src('src/lib/screenlog.js').pipe(gulp.dest('app/lib')),
gulp.src('icons/*').pipe(gulp.dest('app/icons')),
gulp.src('src/assets/*').pipe(gulp.dest('app/assets')),

View File

@ -81,8 +81,8 @@ export default class UserCodeMirror extends Component {
},
'Shift-Tab': function(editor) {
if (options.prettier) {
editor.setValue(
prettify(editor.getValue(), options.prettierParser)
prettify(editor.getValue(), options.prettierParser).then(
formattedCode => editor.setValue(formattedCode)
);
} else {
CodeMirror.commands.indentAuto(editor);

View File

@ -0,0 +1,25 @@
importScripts('/lib/prettier/standalone.js');
function prettify({ content, type }) {
let plugins, parser;
if (type === 'js') {
parser = 'babylon';
importScripts('/lib/prettier/parser-babylon.js');
} else if (type === 'css') {
parser = 'css';
importScripts('/lib/prettier/parser-postcss.js');
}
if (!parser) {
return content;
}
const formattedContent = prettier.format(content, {
parser,
plugins: self.prettierPlugins
});
return formattedContent || content;
}
onmessage = e => {
postMessage(prettify(e.data));
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -461,24 +461,14 @@ export function getFilenameFromUrl(url) {
}
export function prettify(content, type = 'js') {
const prettier = require('prettier/standalone');
let plugins, parser;
if (type === 'js') {
parser = 'babylon';
plugins = [require('prettier/parser-babylon')];
} else if (type === 'css') {
parser = 'css';
plugins = [require('prettier/parser-postcss')];
}
if (!parser) {
return content;
}
const formattedContent = prettier.format(content, {
parser,
plugins
const d = deferred();
const worker = new Worker('/lib/prettier-worker.js');
worker.postMessage({ content, type });
worker.addEventListener('message', e => {
d.resolve(e.data);
worker.terminate();
});
return formattedContent || content;
return d.promise;
}
if (window.IS_EXTENSION) {