美文网首页
对比工具BeyondCompare自定义对比规则(含JavaSc

对比工具BeyondCompare自定义对比规则(含JavaSc

作者: 科研者 | 来源:发表于2019-11-26 19:27 被阅读0次

    在对文本进行对比时,难免需要自己定制对比规则;本文就详细讲解一下有名的对比工具 BeyondCompare 实现自定义对比规则的方法 和 针对 JavaScript代码 的一些实用的对比规则;

    目录

    • 一、问题
    • 二、忽略空格相关的差异
    • 三、设置自定义的忽略规则(忽略行尾分号、单双引号的差异)
      • 方式1:设置不重要的文本
      • 方式2:添加语法元素

    内容

    一、问题

    开发工具往往都有格式化代码的功能,然而,JavaScript代码 的格式规范有多种,不同 开发工具 对 JavaScript代码 的格式化规范 可能不一样,比如,语句结束处默认带不带 分号 ; ,导入模块时,路径字符串是用用单引号 还是 双引号,等等,这些差异,导致在对比 JavaScript 代码时,往往会出现很多的差异提示,如下所示:

    双引号分号.js

    import GBY from "GBY";
    var gby = new GBY()
    var dyx = "代艳霞";
    gby.name = "郭斌勇"  
      
      console.log(gby) ;
    
    

    单引号无分号.js

    import GBY from 'GBY'
    var    gby = new GBY()
    var dyx = "代艳霞"
    gby.name = "郭斌勇" 
    
    
    console.log(gby)
    

    对比效果:

    问题

    注意:图中高亮部分均是被认为是有差异的部分;

    从图中可以看出,对比工具把以下区别认为是差异:

    • 单引号 与 双引号;
    • 行尾 分号 和 行尾 没有 分号;
    • 空行;
    • 连续的空格;
    • 行首空格;
    • 行尾空格;

    而这些在 JS 中都是等效的;

    二、忽略空格相关的差异

    1. 应用菜单栏:会话/会话设置/重要 选项卡中,取消勾选以下选项:

      重要
    2. 在对比会话操作界面,单击 工具栏:次要 按钮,即可将不重要的差异视为相同,如下图图例所示:

      次要

    可以忽略如下差异:

    • 空行;
    • 连续的空格;
    • 行首空格;
    • 行尾空格;

    三、设置自定义的忽略规则(忽略行尾分号、单双引号的差异)

    在 BeyondCompare 中设置自定义忽略规则的方式有2种:

    • 设置不重要的文本
    • 添加语法元素

    这2种方式都可能通过设置正则表达式来匹配需要忽略的内容;

    忽略行尾分号的正则表达式: ;+(\s*;*)*$ ;

    忽略单双引号的正则表达式: '|" ;

    下面就以设置 忽略行尾分号 的规则为例,介绍一下这两种自定义忽略规则方式的步骤;

    方式1:设置不重要的文本

    应用菜单栏:会话/会话设置/重要

    1. 不重要的文本 区域下面点击 + 号 图标,添加一个文本项;
      添加不重要的文本
    2. 要查找的文本 面板中填入以下正则表达式 ;+(\s*;*)*$,并 勾选 正则表达式 选项:
      要查找的文本
    3. 在对比会话操作界面,单击 工具栏:次要 按钮,即可将不重要的差异视为相同,如下图图例所示:
      次要

    方式2:添加语法元素

    1. 点击 应用菜单栏:会话/会话设置/重要 面板中的 编辑语法... 按钮;
      编辑语法按钮
    2. 点击 语法 选项卡中的 + 号 图标,添加一个语法规则;
      语法面板
    3. 在弹出的元素面板中 选择 基本 分类,在 文本匹配 中填入以下正则表达式 ;+(\s*;*)*$,并 勾选 正则表达式 选项,然后点击确定,如下图所示:
      语法元素面板
    4. 应用菜单栏:会话/会话设置/重要 面板中的 标记对比较来说是重要的语法元素 列表中 取消勾选 刚才添加的 语法元素 行尾分号,然后点击 确定 按钮,如下图所示:
      取消勾选添加的语法元素
    5. 在对比会话操作界面,单击 工具栏:次要 按钮,即可将不重要的差异视为相同,如下图图例所示:
      次要

    元素各种类型的说明:

    • 基本:匹配特定的文本部分。可以表示为正则表达式;
    • 分界:匹配文本的起始点和文本的结束点。可以在行尾停止;
    • 列表:基本匹配列表。可以用来代替单独的Basic元素;
    • 列:在行和结束位置的数字起始位置定义的文本部分;
    • 行:匹配文本的起始点或第一行,并结束用户定义的行数;

    相关文章

      网友评论

          本文标题:对比工具BeyondCompare自定义对比规则(含JavaSc

          本文链接:https://www.haomeiwen.com/subject/crmywctx.html