Coder Social home page Coder Social logo

r2r-dev / difftastic Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wilfred/difftastic

1.0 2.0 0.0 619.37 MB

a syntax-aware diff

Home Page: http://difftastic.wilfred.me.uk/

License: MIT License

JavaScript 5.89% Rust 65.86% CSS 0.07% Emacs Lisp 28.04% Python 0.01% Java 0.12%

difftastic's Introduction

it's difftastic!
crates.io codecov.io manual

Difftastic is an experimental structured diff tool that compares files based on their syntax.

See the manual to get started.

Screenshots

C screenshot

C++ screenshot

Haskell screenshot

Languages

Difftastic supports the following languages:

  • C
  • C++
  • C#
  • Clojure
  • CSS
  • Elixir
  • Emacs Lisp
  • Go
  • Haskell
  • Java
  • JavaScript (and JSX)
  • JSON
  • OCaml
  • Python
  • Rust
  • TypeScript (and TSX)

If a file has an unrecognised extension, difftastic uses a line-oriented diff.

Known Issues

Performance. Difftastic scales relatively poorly on files with a large number of changes, and can use a lot of memory. This might be solved by A* search.

Display. Difftastic has a side-by-side display which usually works well, but can be confusing.

Diff accuracy. Some delimiter moves are currently ignored (see #30).

Integration. Difftastic only has limited support for git and mercurial today.

Non-goals

Patch files. If you want to create a patch that you can later apply, use diff. Difftastic ignores whitespace, so its output is lossy. (AST patching is also a hard problem.)

License

Difftastic is open source under the MIT license, see LICENSE for more details.

Files in sample_files/ are also under the MIT license unless stated otherwise in their header.

Further Reading

The wiki includes additional notes on alternative diffing techniques and tools.

difftastic's People

Contributors

314eter avatar akash-akya avatar ananthakumaran avatar aryx avatar aymannadeem avatar calixteman avatar damieng avatar dcreager avatar emjin avatar grayjack avatar initram avatar jasonrudolph avatar jcs090218 avatar jdrouhard avatar joshvera avatar kevinsawicki avatar maxbrunsfeld avatar maximsokolov avatar mjambon avatar msftenhanceprovenance avatar okbel avatar patrickt avatar resolritter avatar rewinfrey avatar robrix avatar sjord avatar tclem avatar tek avatar wilfred avatar xapphire13 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.