1
0

index.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * FeHelper 代码美化工具
  3. */
  4. new Vue({
  5. el: '#pageContainer',
  6. data: {
  7. selectedType: 'Javascript',
  8. sourceContent: '',
  9. resultContent: ''
  10. },
  11. mounted: function () {
  12. // 在tab创建或者更新时候,监听事件,看看是否有参数传递过来
  13. chrome.runtime.onMessage.addListener((request, sender, callback) => {
  14. let MSG_TYPE = Tarp.require('../static/js/msg_type');
  15. if (request.type === MSG_TYPE.TAB_CREATED_OR_UPDATED && request.event === MSG_TYPE.CODE_BEAUTIFY) {
  16. if (request.content) {
  17. this.sourceContent = request.content;
  18. this.format();
  19. }
  20. }
  21. });
  22. //输入框聚焦
  23. this.$refs.codeSource.focus();
  24. },
  25. methods: {
  26. format: function () {
  27. let beauty = (result) => {
  28. result = result.replace(/>/g, '&gt;').replace(/</g, '&lt;');
  29. result = '<pre class="brush: ' + this.selectedType.toLowerCase() + ';toolbar:false;">' + result + '</pre>';
  30. this.resultContent = result;
  31. // 代码高亮
  32. this.$nextTick(() => {
  33. SyntaxHighlighter.defaults['toolbar'] = false;
  34. SyntaxHighlighter.highlight();
  35. })
  36. };
  37. switch (this.selectedType) {
  38. case 'Javascript':
  39. let opts = {
  40. brace_style: "collapse",
  41. break_chained_methods: false,
  42. indent_char: " ",
  43. indent_scripts: "keep",
  44. indent_size: "4",
  45. keep_array_indentation: true,
  46. preserve_newlines: true,
  47. space_after_anon_function: true,
  48. space_before_conditional: true,
  49. unescape_strings: false,
  50. wrap_line_length: "120"
  51. };
  52. Tarp.require('./beautify.js').js_beautify(this.sourceContent, opts, result => beauty(result));
  53. break;
  54. case 'CSS':
  55. Tarp.require('./beautify-css.js').css_beautify(this.sourceContent, {}, result => beauty(result));
  56. break;
  57. case 'HTML':
  58. Tarp.require('./beautify-html.js');
  59. beauty(html_beautify(this.sourceContent));
  60. break;
  61. case 'SQL':
  62. Tarp.require('./vkbeautify.js');
  63. beauty(vkbeautify.sql(this.sourceContent, 4));
  64. break;
  65. default:
  66. Tarp.require('./vkbeautify.js');
  67. beauty(vkbeautify.xml(this.sourceContent));
  68. }
  69. }
  70. }
  71. });