Difftastic, a structural diff tool that understands syntax

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • difftastic

    a structural diff that understands syntax 🟥🟩

  • Semantic Diff is probably the closest for now, although I don't think it uses tree-sitter.

    https://semanticdiff.com/

    Found via https://github.com/Wilfred/difftastic/issues/194.

  • delta

    A syntax-highlighting pager for git, diff, and grep output

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • tree-sitter-embedded-template

    Tree-sitter grammar for embedded template languages like ERB, EJS

  • That may require a tree-sitter implementation for erb templated html; it may exist but if so it's less of a mainstream thing.

    Some quick googling turns up https://github.com/tree-sitter/tree-sitter-embedded-template which may or may not meet your needs.

  • proto

    A pluggable multi-language version manager. (by moonrepo)

  • tree-sitter

    An incremental parsing system for programming tools

  • Tree-sitter optimizes for performance (to use in editors), not for correctness. In fact even TS' core developers advocate for not bothering too much with correctness of grammars[1]. I imagine this constraint would be a deal-breaker for GitHub or anyone else in their position.

    [1] https://github.com/tree-sitter/tree-sitter/issues/130#issuec...

  • SemanticDiff

    Community support for SemanticDiff, the programming language aware diff for Visual Studio Code.

  • Semantic Diff is probably the closest for now, although I don't think it uses tree-sitter.

    https://semanticdiff.com/

    Found via https://github.com/Wilfred/difftastic/issues/194.

  • helix

    A post-modern modal text editor.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • mise

    dev tools, env vars, task runner

  • direnv + mise does exactly that. When I cd to various directories I get different env vars, it's pretty neat. Setting aliases would just be a case of adding them.

    https://github.com/jdx/mise/discussions/1525 for an example of how I use direnv with mise.

    https://mise.jdx.dev/direnv.html

    https://mise.jdx.dev/templates.html

  • vim-surround

    surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease

  • I don't know what exactly you mean by pasting around the second selection, but you can paste selections, registers or even files at specific lines with some vim-fu. If it's generic enough you could write a function or even keyboard shortcut if it's very simple.

    I have set ",',(,[,{ in visual mode to cut the selection insert the pairs then paste it back as a very hacky solution, but it gets the job done. If you want something more advanced to add or change anything around the selection tpope has solved that with vim-surround[1].

    [1]: https://github.com/tpope/vim-surround

  • tree-sitter-cpp

    C++ grammar for tree-sitter

  • Grammar page (https://github.com/tree-sitter/tree-sitter-cpp) reference two documents at the very end:

    - Hyperlinked C++ BNF Grammar (https://alx71hub.github.io/hcb/)

    - EBNF Syntax: C++ (ISO/IEC 14882:1998(E)) https://www.externsoft.ch/download/cpp-iso.html

    The second doc has a year in the title, so it's ancient af.

  • jupyterlab-gitplus

    JupyterLab extension to create GitHub commits & pull requests

  • If you are in need of a diff tool for jupter notebooks use https://www.reviewnb.com/ and for word documents use https://www.simuldocs.com/

  • diff-so-fancy

    Good-lookin' diffs. Actually… nah… The best-lookin' diffs. :tada:

  • The diff itself is impressive, but in terms of styling I still prefer diff-so-fancy[1]. It's easier to read at a glance.

    [1]: https://github.com/so-fancy/diff-so-fancy/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts