Implement Vue Beautifier
This commit is contained in:
parent
06773e35df
commit
7ebc41be64
|
@ -0,0 +1,46 @@
|
||||||
|
<template>
|
||||||
|
<base-view>
|
||||||
|
<div slot="page-body" class="row">
|
||||||
|
Your content here!
|
||||||
|
</div>
|
||||||
|
</base-view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
text: 'Hello, world!'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<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,45 @@
|
||||||
|
<template>
|
||||||
|
<base-view>
|
||||||
|
<div slot="page-body" class="row">
|
||||||
|
Your content here!
|
||||||
|
</div>
|
||||||
|
</base-view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data: function() {
|
||||||
|
return {
|
||||||
|
text: 'Hello, world!'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<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>
|
|
@ -66,6 +66,7 @@ module.exports = class Beautifiers extends EventEmitter
|
||||||
'stylish-haskell'
|
'stylish-haskell'
|
||||||
'tidy-markdown'
|
'tidy-markdown'
|
||||||
'typescript-formatter'
|
'typescript-formatter'
|
||||||
|
'vue-beautifier'
|
||||||
'yapf'
|
'yapf'
|
||||||
'erl_tidy'
|
'erl_tidy'
|
||||||
'marko-beautifier'
|
'marko-beautifier'
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
"use strict"
|
||||||
|
Beautifier = require('./beautifier')
|
||||||
|
prettydiff = require("prettydiff")
|
||||||
|
_ = require('lodash')
|
||||||
|
|
||||||
|
module.exports = class VueBeautifier extends Beautifier
|
||||||
|
name: "Vue Beautifier"
|
||||||
|
|
||||||
|
options:
|
||||||
|
Vue: true
|
||||||
|
|
||||||
|
beautify: (text, language, options) ->
|
||||||
|
return new @Promise((resolve, reject) ->
|
||||||
|
regexp = /(<(template|script|style)[^>]*>)((\s|\S)*?)<\/\2>/gi
|
||||||
|
|
||||||
|
resolve(text.replace(regexp, (match, begin, type, text) ->
|
||||||
|
lang = /lang\s*=\s*['"](\w+)["']/.exec(begin)?[1]
|
||||||
|
|
||||||
|
switch type
|
||||||
|
when "template"
|
||||||
|
switch lang
|
||||||
|
when "pug", "jade"
|
||||||
|
match.replace(text, "\n" + require("pug-beautify")(text, options) + "\n")
|
||||||
|
when undefined
|
||||||
|
match.replace(text, "\n" + require("js-beautify").html(text, options) + "\n")
|
||||||
|
else
|
||||||
|
match
|
||||||
|
when "script"
|
||||||
|
match.replace(text, "\n" + require("js-beautify")(text, options) + "\n")
|
||||||
|
when "style"
|
||||||
|
switch lang
|
||||||
|
when "sass", "scss"
|
||||||
|
options = _.merge options,
|
||||||
|
source: text
|
||||||
|
lang: "scss"
|
||||||
|
mode: "beautify"
|
||||||
|
match.replace(text, prettydiff.api(options)[0])
|
||||||
|
when "less"
|
||||||
|
options = _.merge options,
|
||||||
|
source: text
|
||||||
|
lang: "less"
|
||||||
|
mode: "beautify"
|
||||||
|
match.replace(text, prettydiff.api(options)[0])
|
||||||
|
when undefined
|
||||||
|
match.replace(text, "\n" + require("js-beautify").css(text, options) + "\n")
|
||||||
|
else
|
||||||
|
match
|
||||||
|
))
|
||||||
|
)
|
|
@ -64,6 +64,7 @@ module.exports = class Languages
|
||||||
"twig"
|
"twig"
|
||||||
"typescript"
|
"typescript"
|
||||||
"vala"
|
"vala"
|
||||||
|
"vue"
|
||||||
"visualforce"
|
"visualforce"
|
||||||
"xml"
|
"xml"
|
||||||
"xtemplate"
|
"xtemplate"
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
module.exports = {
|
||||||
|
|
||||||
|
name: "Vue"
|
||||||
|
namespace: "vue"
|
||||||
|
fallback: ['html']
|
||||||
|
|
||||||
|
###
|
||||||
|
Supported Grammars
|
||||||
|
###
|
||||||
|
grammars: [
|
||||||
|
"Vue Component"
|
||||||
|
]
|
||||||
|
|
||||||
|
###
|
||||||
|
Supported extensions
|
||||||
|
###
|
||||||
|
extensions: [
|
||||||
|
"vue"
|
||||||
|
]
|
||||||
|
|
||||||
|
defaultBeautifier: "Vue Beautifier"
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue