Fixes #1557. Fix Vue beautifier adding extra newlines
This commit is contained in:
parent
cd89f6f723
commit
3435e16eb4
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
<style lang="sass">
|
||||||
|
nav {
|
||||||
|
ul {
|
||||||
|
margin:0 padding: 0;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
nav {
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<template lang="jade">
|
||||||
|
.test text...
|
||||||
|
.test2 text2...
|
||||||
|
</template>
|
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
<style lang="sass">
|
||||||
|
nav {
|
||||||
|
ul {
|
||||||
|
margin: 0
|
||||||
|
padding: 0
|
||||||
|
}
|
||||||
|
li {
|
||||||
|
display: inline-block
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display: block
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
nav {
|
||||||
|
ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
li { display: inline-block; }
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<template lang="jade">
|
||||||
|
.test text...
|
||||||
|
.test2 text2...
|
||||||
|
</template>
|
|
@ -1,7 +1,5 @@
|
||||||
"use strict"
|
"use strict"
|
||||||
Beautifier = require('./beautifier')
|
Beautifier = require('./beautifier')
|
||||||
prettydiff = require("prettydiff")
|
|
||||||
_ = require('lodash')
|
|
||||||
|
|
||||||
module.exports = class VueBeautifier extends Beautifier
|
module.exports = class VueBeautifier extends Beautifier
|
||||||
name: "Vue Beautifier"
|
name: "Vue Beautifier"
|
||||||
|
@ -11,40 +9,51 @@ module.exports = class VueBeautifier extends Beautifier
|
||||||
Vue: true
|
Vue: true
|
||||||
|
|
||||||
beautify: (text, language, options) ->
|
beautify: (text, language, options) ->
|
||||||
return new @Promise((resolve, reject) ->
|
return new @Promise((resolve, reject) =>
|
||||||
regexp = /(^<(template|script|style)[^>]*>)((\s|\S)*)^<\/\2>/gim
|
prettydiff = require("prettydiff")
|
||||||
|
_ = require('lodash')
|
||||||
|
regexp = /(^<(template|script|style)[^>]*>)((\s|\S)*?)^<\/\2>/gim
|
||||||
|
|
||||||
resolve(text.replace(regexp, (match, begin, type, text) ->
|
results = text.replace(regexp, (match, begin, type, text) =>
|
||||||
lang = /lang\s*=\s*['"](\w+)["']/.exec(begin)?[1]
|
lang = /lang\s*=\s*['"](\w+)["']/.exec(begin)?[1]
|
||||||
|
replaceText = text
|
||||||
switch type
|
text = text.trim()
|
||||||
|
beautifiedText = (switch type
|
||||||
when "template"
|
when "template"
|
||||||
switch lang
|
switch lang
|
||||||
when "pug", "jade"
|
when "pug", "jade"
|
||||||
match.replace(text, "\n" + require("pug-beautify")(text, options) + "\n")
|
require("pug-beautify")(text, options)
|
||||||
when undefined
|
when undefined
|
||||||
match.replace(text, "\n" + require("js-beautify").html(text, options) + "\n")
|
require("js-beautify").html(text, options)
|
||||||
else
|
else
|
||||||
match
|
undefined
|
||||||
when "script"
|
when "script"
|
||||||
match.replace(text, "\n" + require("js-beautify")(text, options) + "\n")
|
require("js-beautify")(text, options)
|
||||||
when "style"
|
when "style"
|
||||||
switch lang
|
switch lang
|
||||||
when "sass", "scss"
|
when "sass", "scss"
|
||||||
options = _.merge options,
|
options = _.merge(options,
|
||||||
source: text
|
source: text
|
||||||
lang: "scss"
|
lang: "scss"
|
||||||
mode: "beautify"
|
mode: "beautify"
|
||||||
match.replace(text, prettydiff.api(options)[0])
|
)
|
||||||
|
prettydiff.api(options)[0]
|
||||||
when "less"
|
when "less"
|
||||||
options = _.merge options,
|
options = _.merge(options,
|
||||||
source: text
|
source: text
|
||||||
lang: "less"
|
lang: "less"
|
||||||
mode: "beautify"
|
mode: "beautify"
|
||||||
match.replace(text, prettydiff.api(options)[0])
|
)
|
||||||
|
prettydiff.api(options)[0]
|
||||||
when undefined
|
when undefined
|
||||||
match.replace(text, "\n" + require("js-beautify").css(text, options) + "\n")
|
require("js-beautify").css(text, options)
|
||||||
else
|
else
|
||||||
match
|
undefined
|
||||||
))
|
)
|
||||||
|
result = if beautifiedText then match.replace(replaceText, "\n#{beautifiedText.trim()}\n") else match
|
||||||
|
@verbose("Vue part", match, begin, type, text, lang, result)
|
||||||
|
return result
|
||||||
|
)
|
||||||
|
@verbose("Vue final results", results)
|
||||||
|
resolve(results)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue