提交 d2c4a58b 编写于 作者: B baiy 提交者: ninecents

代码格式化工具优化

上级 4736a100
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<option-block> <option-block>
<FormItem> <FormItem>
<ButtonGroup> <ButtonGroup>
<Button type="primary" @click="handle(k,v)" v-for="(v,k) in lang" :key="k">{{k}}</Button> <Button type="primary" @click="handle(k,v)" v-for="(v,k) in lang" :key="k">{{ k }}</Button>
</ButtonGroup> </ButtonGroup>
</FormItem> </FormItem>
<FormItem> <FormItem>
...@@ -16,51 +16,49 @@ ...@@ -16,51 +16,49 @@
</div> </div>
</template> </template>
<script> <script>
import { codemirror } from 'vue-codemirror' import {codemirror} from 'vue-codemirror'
import formatter from 'code-formatter' import formatter from './library/formatter'
import 'codemirror/lib/codemirror.css' import 'codemirror/lib/codemirror.css'
import 'codemirror/mode/javascript/javascript.js' import 'codemirror/mode/javascript/javascript.js'
import 'codemirror/mode/htmlmixed/htmlmixed.js' import 'codemirror/mode/htmlmixed/htmlmixed.js'
import 'codemirror/mode/css/css.js' import 'codemirror/mode/css/css.js'
import 'codemirror/mode/xml/xml.js' import 'codemirror/mode/xml/xml.js'
import 'codemirror/mode/sql/sql.js' import 'codemirror/mode/sql/sql.js'
import 'codemirror/addon/fold/foldcode.js' import 'codemirror/addon/fold/foldcode.js'
import 'codemirror/addon/fold/foldgutter.js' import 'codemirror/addon/fold/foldgutter.js'
import 'codemirror/addon/fold/brace-fold.js' import 'codemirror/addon/fold/brace-fold.js'
import 'codemirror/addon/fold/comment-fold.js' import 'codemirror/addon/fold/comment-fold.js'
import 'codemirror/addon/fold/foldgutter.css' import 'codemirror/addon/fold/foldgutter.css'
export default { export default {
components: { components: {
codemirror, codemirror,
}, },
created () { created() {
this.current = Object.assign(this.current, this.$getToolData('content')) this.current = Object.assign(this.current, this.$getToolData('content'))
}, },
mounted () { mounted() {
this.codemirror.setSize(null, 350) this.codemirror.setSize(null, 350)
if (this.current.lang) { if (this.current.lang) {
this.codemirror.setOption('mode', this.options[this.current.lang]) this.codemirror.setOption('mode', this.options[this.current.lang])
} }
}, },
computed: { computed: {
codemirror () { codemirror() {
return this.$refs.code.codemirror return this.$refs.code.codemirror
}, },
}, },
methods: { methods: {
handle (lang, mode) { handle(lang, mode) {
if (this.current.content) { if (this.current.content) {
this.current.content = formatter(this.current.content, { this.current.content = formatter(this.current.content, lang, this.current.isCompress)
method: this.current.isCompress ? lang+"min" : lang
})
this.codemirror.setOption('mode', mode) this.codemirror.setOption('mode', mode)
this.current.lang = lang this.current.lang = lang
this.$saveToolData(this.current) this.$saveToolData(this.current)
} }
}, },
}, },
data () { data() {
return { return {
current: { current: {
content: '', content: '',
...@@ -84,5 +82,5 @@ ...@@ -84,5 +82,5 @@
}, },
} }
}, },
} }
</script> </script>
\ No newline at end of file
import codeFormatter from 'code-formatter'
import xmlFormatter from "xml-formatter"
export default (code, type, isCompress = false) => {
if (type === "xml") {
return xmlFormatter(code, {
indentation: isCompress ? '' : ' ',
collapseContent: true,
lineSeparator: isCompress ? '' : '\n'
});
}
return codeFormatter(code, {
method: isCompress ? type + "min" : type
})
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册