mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-06 10:08:52 +08:00
65 lines
1.2 KiB
Vue
65 lines
1.2 KiB
Vue
<template>
|
|
<div class="codemirror-container">
|
|
<codemirror v-model="query" :options="cmOptions" @changes="onChange" />
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import hint from '@/hint'
|
|
import { codemirror } from 'vue-codemirror'
|
|
import 'codemirror/lib/codemirror.css'
|
|
import 'codemirror/mode/sql/sql.js'
|
|
import 'codemirror/theme/neo.css'
|
|
import 'codemirror/addon/hint/show-hint.css'
|
|
import 'codemirror/addon/display/autorefresh.js'
|
|
|
|
export default {
|
|
name: 'SqlEditor',
|
|
props: ['value'],
|
|
components: { codemirror },
|
|
data () {
|
|
return {
|
|
query: this.value,
|
|
cmOptions: {
|
|
// codemirror options
|
|
tabSize: 4,
|
|
mode: 'text/x-mysql',
|
|
theme: 'neo',
|
|
lineNumbers: true,
|
|
line: true,
|
|
autofocus: true,
|
|
autoRefresh: true
|
|
}
|
|
}
|
|
},
|
|
watch: {
|
|
query () {
|
|
this.$emit('input', this.query)
|
|
}
|
|
},
|
|
methods: {
|
|
onChange: hint.show
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
.codemirror-container {
|
|
flex-grow: 1;
|
|
min-height: 0;
|
|
}
|
|
|
|
>>> .vue-codemirror {
|
|
height: 100%;
|
|
max-height: 100%;
|
|
}
|
|
>>> .CodeMirror {
|
|
height: 100%;
|
|
max-height: 100%;
|
|
}
|
|
>>> .CodeMirror-cursor {
|
|
width: 1px;
|
|
background: var(--color-text-base);
|
|
}
|
|
</style>
|