对比工具BeyondCompare自定义对比规则(含JavaScript实用对比规则)

在对文本进行对比时,难免需要自己定制对比规则;本文就详细讲解一下有名的对比工具 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)

对比效果:

对比工具BeyondCompare自定义对比规则(含JavaScript实用对比规则)_第1张图片
问题

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

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

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

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

二、忽略空格相关的差异

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

    重要

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

    对比工具BeyondCompare自定义对比规则(含JavaScript实用对比规则)_第2张图片
    次要

可以忽略如下差异:

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

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

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

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

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

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

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

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

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

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

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

方式2:添加语法元素

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

元素各种类型的说明:

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

你可能感兴趣的:(对比工具BeyondCompare自定义对比规则(含JavaScript实用对比规则))