博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codemirror插件-文件比较组件merge
阅读量:6475 次
发布时间:2019-06-23

本文共 2209 字,大约阅读时间需要 7 分钟。

目的: 为了实现文件比较功能

引用文件

从github下载项目后,从以下路径引用文件,其中部分github分支中codemirror.js 需要运行项目,自动合成

1 
2
3 4 5 6

配置参数 

笔者在merge.js的 CodeMirror中注册了如下方法

1  var value, orig1, orig2, dv, panes = 2, highlight = true, connect = null, collapse = false; 2   CodeMirror.k_init=function(id,newData,oldData){ 3     value=oldData;//左侧 老文件 4     orig1 = ''; 5     orig2=newData;//右侧 新文件 6     initUI(); 7  8     function initUI() { 9       if (value == null) return;10       var target = document.getElementById(id);11       target.innerHTML = "";12       var dv = CodeMirror.MergeView(target, {13         value: value,14         origLeft: panes == 3 && !collapse && !connect ? orig1 : null,15         orig: orig2,16         lineNumbers: true, //行号17         mode: "text/html",18         //theme:'3024-night',//修改主题19         styleActiveLine: true,20         matchBrackets: true,21         highlightDifferences: highlight,22         connect: connect,23         collapseIdentical: collapse,24         revertButtons:false,//事件比较替换25       });26     }27   };

 然后在外部js中直接调用 

CodeMirror.k_init('codeMirror',jsonString.now_file_content,jsonString.old_file_content)

效果如下

 

 

单个文件查看

1   CodeMirror.k_show=function(id,Data){ 2     value=Data;//左侧 老文件 3     initUI(); 4     function initUI() { 5       if (value == null) return; 6       var target = document.getElementById(id); 7       target.innerHTML = ""; 8       var dv = CodeMirror(document.getElementById(id), { 9         value: value,10         lineNumbers: true,11         mode: "text/html",12         //theme:'3024-night',13         styleActiveLine: true,14         matchBrackets: true,15       });16     }17   };
CodeMirror.k_show('codeMirror',jsonString.now_file_content)

效果如下

 

配置心得:

1)修改主题

引用 codemirror源码中theme文件下的css,添加配置theme,例 theme:'3024-night'; //修改主题

2)修改不同部分背景颜色

若行内容不用,dom结构会有所不同,故我直接修改css,  兄弟选择器确定元素

.CodeMirror-merge-r-chunk+.CodeMirror-gutter-wrapper+.CodeMirror-line {  background-color: #888;}.CodeMirror-merge-r-chunk+.CodeMirror-gutter-wrapper+.CodeMirror-line span {  background-image: none;}

3)高度修改

修改merge.css ,

.CodeMirror-merge, .CodeMirror-merge .CodeMirror {  height: 600px;}

4)revertButtons参数 关闭中间替换事件,隐藏替换按钮

 

 

 

 

 

 

转载于:https://www.cnblogs.com/blog-index/p/6694658.html

你可能感兴趣的文章
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
值类型和引用类型
查看>>
查看外键属性
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
maven 常用插件
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
画图函数——点,线,矩形等等
查看>>
ejabberd_local
查看>>