Commit Graph

14366 Commits (688aaa83f80c62f1bcde3fce09069992a3a7716d)
 

Author SHA1 Message Date
Wilfred Hughes 688aaa83f8 Merge commit '02b4ee757654b7d54fe35352fd8e53a8a4385d42' 2024-04-28 17:32:23 +07:00
Wilfred Hughes 38f148df1f Don't flatten error nodes
As of b9d44ae65f (released in 0.38), difftastic prefers a textual
diff if any parse errors are present. As a result, users have to
opt-in to allowing parse errors. We can now preserve structure to
produce diffs that are more granular, at the slight risk of changes
being missed if parsers discard tokens.

Fixes #703
2024-04-28 17:28:34 +07:00
Wilfred Hughes 7f5c11c075 cargo fmt 2024-04-28 16:40:00 +07:00
Wilfred Hughes 8655a9464e Fix unwanted duplicate node in existing vec
Broken in previous commit. This is now only a few percentage points
performance win, but it's still a net improvement.
2024-04-28 16:35:40 +07:00
Wilfred Hughes d15d593708 Move to smallvec for seen vertices
This is a surprisingly large perf win. On my Thinkpad:

typing_before/after.ml:
before: 3.038B instructions
after:  2.870B instructions

slow_before/after.rs:
before: 2.381B instructions
after:  1.260B instructions (!)
2024-04-28 16:16:47 +07:00
Wilfred Hughes 26e1ae40ef Fix clippy lints 2024-04-28 16:09:54 +07:00
Steinar H. Gunderson 302570591f Make Stack be allocated on the arena.
This fixes another memory leak, and also removes the need for
refcounting the Stack objects and the Node objects they point to.
2024-04-28 15:46:23 +07:00
Steinar H. Gunderson 4fb1478817 Fix memory leak in neighbours array.
Vertex is allocated on the arena, so it is never dropped;
then it cannot contain a Vec allocated on the regular heap
without leaking memory. Replace the Vec with a slice allocated
on the arena, which seems to fix most of the leaks. (Some may
remain; I haven't checked fully.) It should also be slightly
more memory-efficient.

It's not clear that we actually need the RefCell instead of
just putting Option directly into the structure, but I've
let it stay.

This issue was probably introduced in a71d6118cf.
2024-04-28 15:46:23 +07:00
Wilfred Hughes 7353a7926f Try enabling ARM macos on CI 2024-04-28 15:23:45 +07:00
Wilfred Hughes cafff7f128 Pin mac build to macos-12 2024-04-28 15:16:04 +07:00
Wilfred Hughes d2cdb96e00 Expand man page and add to changelog 2024-04-28 15:07:23 +07:00
Wilfred Hughes cb63ca8830 Write a basic man page 2024-04-27 16:21:17 +07:00
Manuel 5ade0bbe9c readme: direct link to languages section 2024-04-25 07:23:49 +07:00
Wilfred Hughes f52ca706f3 Enable --strip-cr by default
Line ending differences between input files often leads to confusing
diffs, so remove carriage returns unless explicitly requested.

Fixes #653
Fixes #696
2024-04-09 08:37:41 +07:00
Ivan Kuchin 287ddd7b42 Much shorter version of dlog alias
Use `-c` to set config instead of environment variable, so no need for building shell command
2024-04-08 08:39:49 +07:00
Wilfred Hughes 148ccf8be0 Add logos to homepage 2024-04-07 16:23:03 +07:00
Wilfred Hughes bca6da38ce Improve wording 2024-04-07 15:56:45 +07:00
Wilfred Hughes b40e744a32 Clarify headings on internals pages 2024-04-07 15:55:49 +07:00
Wilfred Hughes a7e2a3914f Add favicon for manual 2024-04-07 15:54:29 +07:00
Wilfred Hughes db281c682c Roll version 2024-04-02 08:17:24 +07:00
Wilfred Hughes 00e837aeb1 Update changelog 2024-04-01 22:42:16 +07:00
Alexis (Poliorcetics) Bourget 573d607051 fix: diff hidden but non-ignored files when walking directories 2024-04-01 08:32:46 +07:00
Alexis (Poliorcetics) Bourget 1f79d16606 tests: show that hidden files are not picked up by difftastic 2024-04-01 08:32:46 +07:00
Pi-Cla 3b049c2fd0 run cargo update 2024-03-28 08:24:42 +07:00
Wilfred Hughes b3732b9ebb
Merge pull request #684 from mbaitelman/patch-1
Update installation.md to include chocolatey
2024-03-26 19:51:34 +07:00
mbaitelman d718d64a6e
Update installation.md to include chocolatey 2024-03-26 13:40:38 +07:00
Wilfred Hughes 415c591875
Merge pull request #638 from RBotfield/add-php-file-extensions
Add extra PHP file extensions to the language guesser.
2024-03-25 22:04:45 +07:00
Rhys Botfield e096444e73
Merge branch 'Wilfred:master' into add-php-file-extensions 2024-03-25 19:04:49 +07:00
Wilfred Hughes e34185f190 Consistent whitespace 2024-03-23 16:07:18 +07:00
Wilfred Hughes ca472bf0f1
Merge pull request #671 from matthewhughes934/add-tab-completion-for-git-alias
Add tab completion for documented `dlog` alias
2024-03-23 16:03:29 +07:00
Wilfred Hughes 5aeddd79d4 Add missing from_source manual page 2024-03-22 15:48:31 +07:00
Rhys Botfield e5e7d1cfb7 Format PHP extensions in guess_language.rs
To keep rustfmt happy
2024-03-22 21:32:25 +07:00
Wilfred Hughes caf8760deb
Merge pull request #672 from emaste/freebsd
Add FreeBSD installation instructions
2024-03-22 08:04:42 +07:00
Ed Maste 59d20674f4 Add FreeBSD installation instructions 2024-03-22 10:13:29 +07:00
Matthew Hughes f984413e6b Add tab completion for documented `dlog` alias
There's a feature of Git's completion scripts that allows
completing function aliases[1]:

> If you use complex aliases of form '!f() { ... }; f', you can use the null
> command ':' as the first command in the function body to declare the desired
> completion style

This allows completion:

    $ git dlog --pat<tab>
    --patch             --patch-with-raw    --patch-with-stat   --patience

Tested on `bash`, though I believe this should also work with `zsh` and
`tsch` since their respective completion scripts also make use of the
`bash` one

[1] https://git.kernel.org/pub/scm/git/git.git/tree/contrib/completion/git-completion.bash?id=11c821f2f2a31e70fb5cc449f9a29401c333aad2#n26
2024-03-22 08:20:56 +07:00
Wilfred Hughes dd7a0c87ee
Merge pull request #665 from opakapaka2003/opakapaka2003-patch-1
Update installation.md
2024-03-21 10:15:32 +07:00
opakapaka2003 47f63b28f0
Update installation.md
Revise nix installation instructions to change "ripgrep" to "difftastic"
2024-03-21 11:37:54 +07:00
Wilfred Hughes c8655d23bd Trace git environment variables 2024-03-20 08:26:30 +07:00
Wilfred Hughes a70786d731 Expand installation instructions
Include more installation commands, split out source installation to a
separate page.
2024-03-19 08:47:27 +07:00
Wilfred Hughes 15977f6e25 Update to latest tree_magic_mini now PR was merged 2024-03-19 00:27:21 +07:00
Wilfred Hughes 3be8e80fe7 Fix issue with later lines not having positions during diffing 2024-03-19 00:25:18 +07:00
Wilfred Hughes 627ebc5a4c Revert "Upgrade to latest tree_magic_mini"
This reverts commit b95c27a50a.
2024-03-15 08:33:06 +07:00
Wilfred Hughes b95c27a50a Upgrade to latest tree_magic_mini 2024-03-14 22:33:00 +07:00
Wilfred Hughes 93ae0e91db Fix typos 2024-03-12 23:08:39 +07:00
Wilfred Hughes 3d29dc1228 Silence some clippy lints 2024-03-11 22:26:30 +07:00
Wilfred Hughes 34fa3d6eff Use a blank line after all diff summaries 2024-03-07 08:19:58 +07:00
Wilfred Hughes c6da85759c Consider null bytes in text file detection 2024-03-06 23:07:59 +07:00
Wilfred Hughes d3797ef4e2 Treat Scheme as a lisp in slider logic 2024-03-06 21:56:27 +07:00
Wilfred Hughes 5f5085637e Treat Scheme as a lisp when handling sliders 2024-03-06 21:55:31 +07:00
Wilfred Hughes 3a480154c2 Use consistent casing 2024-03-06 21:47:30 +07:00