1 个不稳定版本
0.23.0 | 2022年9月15日 |
---|
#4 在 #difftastic
144MB
4.5M SLoC
Difftastic 是一个基于语法比较文件的实验性差异工具。
查看 手册 以开始使用。
演示 1:包裹表达式
Difftastic 理解表达式嵌套。如果您在一个 if 语句中包裹一个表达式,Difftastic 理解内部值未更改。
与 git 的默认差异比较。它被缩进更改所困惑,不知道哪个关闭括号被添加了。
演示 2:重新排列代码
Difftastic 对代码格式更改具有鲁棒性。如果您更改单行中出现的项的数量,Difftastic 将仅显示已更改的项。
在 git 的默认差异中,更难看出 iter
和花括号未更改。查看受影响的行号也更困难。
语言
Difftastic 支持以下语言
- Bash
- C
- C++
- C#
- Clojure
- Common Lisp
- CSS
- Elixir
- Emacs Lisp
- Go
- Haskell
- Java
- JavaScript (和 JSX)
- JSON
- OCaml
- PHP
- Python
- Ruby
- Rust
- Scala
- TypeScript (和 TSX)
如果文件具有无法识别的扩展名,Difftastic 将使用基于行的差异。
已知问题
性能。Difftastic 在具有大量更改的文件上的扩展性相对较差,并且会使用大量内存。
显示。Difftastic 有一个并排显示,通常工作良好,但可能会令人困惑。
鲁棒性。Difftastic 定期发布解决崩溃的版本。
非目标
补丁文件。如果您想创建可以稍后应用的补丁,请使用 diff
。Difftastic 忽略空白,因此其输出是损耗的。(AST 补丁也是一个难题。)
许可证
Difftastic 在 MIT 许可证下是开源的,有关详细信息,请参阅 LICENSE。
sample_files/
中的文件也在 MIT 许可证下,除非在其标题中另有说明。
依赖项
~7–17MB
~222K SLoC