demo.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var Vue = require('vue')
  2. var VueCodeMirror = require('../index')
  3. Vue.use(VueCodeMirror)
  4. var codes = {
  5. javascript: 'var component = {\n\tname: "vue-codemirror-lite",\n\tauthor: "Fangxw",\n\trepo: "https://github.com/cnu4/vue-codemirror-lite"\n}\n\n//Press Ctrl-Space to trigger hint',
  6. vue: '<template>\n<codemirror :value="code"></codemirror>\n</template>\n\n<script>\nimport { codemirror } from "vue-codemirror-lite"\nexport default {\n\tdata () {\n\t\treturn {\n\t\t\tcode: "const str = \"hello world\""\n\t\t}\n\t},\n\tcomponents: {\n\t\tcodemirror\n\t}\n}\n</script>'
  7. }
  8. // require htmlmixed mode
  9. require('codemirror/mode/vue/vue.js')
  10. require('codemirror/mode/javascript/javascript.js')
  11. // require hint addon for javacript
  12. require('codemirror/addon/hint/show-hint.js')
  13. require('codemirror/addon/hint/show-hint.css')
  14. require('codemirror/addon/hint/javascript-hint.js')
  15. var app = new Vue({
  16. el: '#app',
  17. data: function () {
  18. return {
  19. mode: 'javascript'
  20. }
  21. },
  22. computed: {
  23. code: function () {
  24. return codes[this.mode]
  25. },
  26. options: function () {
  27. return {
  28. mode: this.mode,
  29. tabSize: 2,
  30. lineNumbers: true,
  31. lineWrapping: true,
  32. extraKeys: {'Ctrl-Space': 'autocomplete'},
  33. }
  34. }
  35. },
  36. methods: {
  37. change: function (code) {
  38. console.log('change', code)
  39. }
  40. }
  41. })