Commit Graph

1999 Commits (0f2b1022f2cc973665115769c10bbf0a55237e00)

Author SHA1 Message Date
Wilfred Hughes 3ed255ac8f Set actions to prepare for clap4 migration 2024-12-15 14:29:36 +07:00
Wilfred Hughes 9a8889dc4b Remove call that had no side effect 2024-11-26 01:43:03 +07:00
Wilfred Hughes 00f6959a29 Ensure JSON output is consistently ordered
Closes #780
2024-11-15 23:17:27 +07:00
Wilfred Hughes 3a1e398edc Improve handling of named pipe arguments
Use display_name in more places, and prefer file names with extensions
when we have two arguments.

Fixes #783
2024-11-15 23:11:25 +07:00
Wilfred Hughes 956b09a63e Remove another mention of old flag name 2024-11-15 22:54:58 +07:00
Wilfred Hughes 430db0efc5 Update options parsing for new flag spelling 2024-11-15 22:51:48 +07:00
Wilfred Hughes 39e645832e Fix compilation on older Rust versions 2024-11-15 22:08:15 +07:00
Wilfred Hughes 90f108105d The syntax is dot, not dotty 2024-11-15 22:04:07 +07:00
Wilfred Hughes 13b8252d8b Fix typo 2024-11-14 23:41:35 +07:00
Wilfred Hughes d5b1e26d70 Add a debug helper for syntax tree as DOT 2024-11-14 22:55:00 +07:00
Wilfred Hughes 4df51dc57c Improve syntax highlighting on tree-sitter lists that are just keywords
Closes #777
2024-11-15 00:03:30 +07:00
Wilfred Hughes 819a672df8 Clarify content ID in debug output on Syntax 2024-11-15 00:03:30 +07:00
Wilfred Hughes 1c0dd04ef1 Allow debug printing of HighlightedNodeIds 2024-11-15 00:03:30 +07:00
Wilfred Hughes 549cb483fe Fix crash due to trailing newlines in string nodes at EOF
Fixes #782
2024-11-15 00:03:30 +07:00
Wilfred Hughes 05378e4554 Silence a clippy lint 2024-10-23 08:51:13 +07:00
Wilfred Hughes 618d8dd8ad Distinguish version and short version metadata to make --help clearer
Fixes #774
2024-10-23 08:44:28 +07:00
Wilfred Hughes c396bb0102 Note on ASCII assumptions in content_max_width 2024-10-21 22:57:01 +07:00
Wilfred Hughes 511b7579fb Fix min() which should be max() 2024-10-21 22:53:28 +07:00
Wilfred Hughes 845bbeafff Cap the maxmimum size of columns in side-by-side display 2024-10-21 09:04:29 +07:00
Wilfred Hughes 8b2b94a458 Clarify name 2024-10-21 08:39:03 +07:00
Wilfred Hughes 8cdb59fa5e Normalise newlines before diffing
This produces good, consistent results on different trailing newlines
before, consistent with the behaviour before 7edd2a82cd (see #755).
2024-10-21 08:34:39 +07:00
Wilfred Hughes 7edd2a82cd Always consider newlines when diffing lines
StringIgnoringNewline caused crashes in code that assumed that two
equal values would hav the same string length.

This reverts 86612798ad. A better
approach would be to normalise line endings before diffing, but
additionally print whether files have/lack trailing newlines.

Fixes #755
2024-10-15 08:46:34 +07:00
Wilfred Hughes 2dd4f7e912 Add doc comment 2024-10-15 08:37:18 +07:00
Mateusz Radomski 663590a3b2 Atomize hex and unicode string literals in Solidity
Without this, changes inside these string types are not taken into
consideration when performing the diff.
2024-10-02 08:18:40 +07:00
Wilfred Hughes a31948384b Tweak name to reflect git internals conventions 2024-09-22 20:09:04 +07:00
Andreas Deininger 5ecf3c1eb2 Bump GitHub action workflows to their latest versions 2024-09-11 21:22:59 +07:00
idea-list 6bbeb53c68 Parse pdm.lock and uv.lock as TOML 2024-09-05 00:11:09 +07:00
Wilfred Hughes 3c62ff37c0 Include OS in --version
Fixes #757
2024-08-29 22:52:36 +07:00
Alexander Ilin b021c079aa Find and replace all instances of "the all the" with "all the" 2024-08-26 08:17:51 +07:00
Wilfred Hughes 96ff1e8dbd Tweak comment 2024-08-26 08:16:36 +07:00
Marcel 4d6eaf65e2
add mjml as xml 2024-08-03 02:38:27 +07:00
Wilfred Hughes 1ac95534fe Don't push empty positions when diffing lines 2024-07-30 16:16:34 +07:00
Wilfred Hughes 86612798ad Try ignoring trailing newlines in line-based differ 2024-07-30 16:09:40 +07:00
Wilfred Hughes 0973998de2 Clarify enum variant NovelLinePart and expand doc comments 2024-07-30 15:33:37 +07:00
Wilfred Hughes 5a51c02157 Fix crash when the last hunk includes the trailing newline at EOF
Input cleaning should happen before we diff the content, not during
display. Previously display would crash due to line numbers
referencing the line that had been stripped.

Fixes #713
Fixes #739
Fixes #742
2024-07-26 08:54:20 +07:00
Wilfred Hughes 78650c310a Improve accuracy of conservative width estimation optimisation 2024-07-21 11:37:27 +07:00
Wilfred Hughes c2f4b1f2ee Update tests and changelog for 1e8be4558b 2024-07-21 11:15:54 +07:00
Wilfred Hughes 92fa3fb3de Ensure files with no common content are aligned 2024-07-20 23:43:04 +07:00
Wilfred Hughes 1e8be4558b Fix performance when splitting very long lines during display 2024-07-20 23:38:16 +07:00
Wilfred Hughes ffe27c575e Ensure line splitting distinguishes "foo" and "foo\n"
We rely on being able to split lines and rejoin them to obtain the
original string. `str::lines()` in the Rust stdlib does not have this
property.

This was causing crashes in word-diffing on textual diffing, where
code paths differed on the number of lines they thought a string had.

This was broken in 8b842387a1.

Fixes #688.
2024-07-20 16:09:44 +07:00
Wilfred Hughes 27a0cfba16 Silence some clippy warnings 2024-06-29 23:08:11 +07:00
Marcel 759797c851 guess_language: add flake.lock as json 2024-06-27 08:09:28 +07:00
Wilfred Hughes d7188f7178 Remove unused struct 2024-05-25 14:55:39 +07:00
Wilfred Hughes d92b65c5fd Merge remote-tracking branch 'thecentury/f#' 2024-05-14 09:46:55 +07:00
Wilfred Hughes d292546df7 Prefer 'device tree' as two words 2024-05-13 16:59:48 +07:00
Wilfred Hughes d3e5aa5232 Merge remote-tracking branch 'blmaier/support-devicetree' 2024-05-13 16:50:13 +07:00
Wilfred Hughes 809f49124c Remove empty comment 2024-05-11 22:10:17 +07:00
Wilfred Hughes 28d8673371 Treat tree-sitter nodes highlighted as comments as atoms
Fixes #711
2024-05-11 22:03:59 +07:00
Wilfred Hughes e51834fa77 Support comment.foo highlighting queries
This should improve highlighting in cases like Elm that use
`@comment.elm`.
2024-05-11 16:08:29 +07:00
Wilfred Hughes edb839c803 Improve terminal width detection
Ensure the value is always non-zero, and consider $COLUMNS if
crossterm does not succeed.

Fixes #707
2024-05-10 16:26:48 +07:00
Wilfred Hughes 6a3b340d5f Prefer 'terminal' over 'display' terminology 2024-05-10 15:53:40 +07:00
Wilfred Hughes ec7a765453 Factor out a constant for the default terminal width 2024-05-10 15:50:56 +07:00
Wilfred Hughes 1954f15e0d Fix typo 2024-05-07 08:50:54 +07:00
Wilfred Hughes 03d1f9bf26 Lint against .to_string() on String 2024-05-07 08:39:07 +07:00
Wilfred Hughes 9474635076 Prefer .to_owned() on &str 2024-05-07 08:32:30 +07:00
Wilfred Hughes 5c40cd0282 Prefer _1 and _2 naming for test files
This is less to type, and it's now alphabetical, so e.g.
sample_files/*.kt just works as a test argument.
2024-04-28 23:28:06 +07:00
Wilfred Hughes 2e016566ac Update CSS parser 2024-04-28 21:45:25 +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 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
Alexis (Poliorcetics) Bourget 573d607051 fix: diff hidden but non-ignored files when walking directories 2024-04-01 08:32:46 +07:00
Rhys Botfield e096444e73
Merge branch 'Wilfred:master' into add-php-file-extensions 2024-03-25 19:04:49 +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 c8655d23bd Trace git environment variables 2024-03-20 08:26:30 +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 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 5f5085637e Treat Scheme as a lisp when handling sliders 2024-03-06 21:55:31 +07:00
Wilfred Hughes 7346c895f0 Fix new files claiming they have permission changes 2024-03-04 22:54:57 +07:00
Wilfred Hughes b95e6cc6e6 Fix Scheme globs 2024-03-04 22:25:16 +07:00
Wilfred Hughes 247727066f Handle whitespace in shebangs 2024-03-04 22:10:08 +07:00
Wilfred Hughes 6ff603cc6e Support some more Scheme file extensions 2024-03-04 22:06:19 +07:00
Wilfred Hughes d5c60241ef Detect more Makefile naming patterns 2024-03-04 22:06:09 +07:00
Wilfred Hughes b78f7d447b Always replace tabs, even in single-column display
Fixes #617
2024-03-04 21:38:23 +07:00
Wilfred Hughes 7ddd8879b1 Merge branch 'scheme-support' of github.com:kutsurak/difftastic into kutsurak-scheme-support 2024-03-04 08:46:59 +07:00
Wilfred Hughes 5e38261b77 cargo fmt 2024-02-29 00:56:16 +07:00
Wilfred Hughes 53298e4240 Set a length limit on lines when doing a word diff
See #653
2024-02-29 00:54:55 +07:00
Wilfred Hughes 7e8f928926 Add doc comments 2024-02-29 00:10:52 +07:00
Brandon Maier e6b27caf06 Add support for devicetrees 2024-02-28 17:11:53 +07:00
Wilfred Hughes 1b2099d7a4 Fix windows build 2024-02-26 20:55:45 +07:00
Wilfred Hughes bb9e864ffe Fix permissions always shown as 'changed' with git-difftool 2024-02-20 00:17:38 +07:00
Wilfred Hughes cbbcbb3094 Parse file mode properly from git and pass through 2024-02-20 00:07:06 +07:00
Wilfred Hughes 1cc0c42c20 Detect git difftool paths and prefer the second argument
Fixes #620
2024-02-19 22:19:20 +07:00
Wilfred Hughes 9032c2ff89
Merge pull request #643 from baz-scm/json-output-respect-unchanged-files
Allow JSON output to respect skip-unchanged
2024-02-19 12:00:59 +07:00
Wilfred Hughes 7a00339977
Merge pull request #634 from evanrichter/smali
Smali language support
2024-02-19 11:57:54 +07:00
Wilfred Hughes bf047030d2 Add a unit tests that validates that all language configs are valid 2024-02-15 08:47:58 +07:00
Nimrod 679d1ce65a Impl PartialEq 2024-02-14 16:13:08 +07:00
Nimrod 9f8d79bb7f Allow JSON output to respect skip-unchanged 2024-02-14 16:08:40 +07:00
Panagiotis Koutsourakis 67ada1ccd4 Add support for Scheme 2024-02-12 10:20:57 +07:00
Rhys Botfield 55b9630069 Add extra PHP file extensions to the language guesser. 2024-02-09 14:43:20 +07:00
Wilfred Hughes cd65d48619 Silence a clippy warning 2024-02-08 08:40:47 +07:00
Wilfred Hughes 4146067be1 Prefer implementing Display over a custom .display() method 2024-02-08 08:34:48 +07:00
Evan Richter d106c979ee add smali language support 2024-02-01 15:41:14 +07:00
Wilfred Hughes 7fda26d68a cargo fmt 2024-01-30 21:25:01 +07:00
Wilfred Hughes 052b3a62a3 Use XML file headers as language detection hints
Fixes #630
2024-01-30 21:22:51 +07:00
Wilfred Hughes 5219977d88 Add comment to language detection logic 2024-01-29 21:57:40 +07:00
Godefroid Chapelle 992f9cf11d
ZCML is XML
Zope and Plone ZCML (Zope Configuration Markup Language) is XML.
2024-01-29 16:40:48 +07:00
Mikhail Brinchuk 297fa952c2
Merge branch 'Wilfred:master' into f# 2024-01-29 11:45:31 +07:00
Mikhail Brinchuk 045344f783 Fixed rust format 2024-01-28 12:52:07 +07:00
Mikhail Brinchuk 0e4723cf0e Added F# support 2024-01-28 12:11:53 +07:00
Armin Brauns c5638750d6 Add tree-sitter-vhdl 2024-01-09 09:23:51 +07:00
Wilfred Hughes 2d61aefb84 Fix tab replacement in single-column display
Fixes #617
2024-01-07 19:35:33 +07:00
Wilfred Hughes 8ad07174c9 Fix spelling 2024-01-07 19:28:29 +07:00
Wilfred Hughes bc0cbaf3ae Change default tab width to 4
This is more consistent with web UIs like GitHub, so I think it's a
better default.
2024-01-07 13:15:12 +07:00
Wilfred Hughes db86b28a28 Add support for Objective-C
Closes #600

Co-authored-by: Nick Moore <nick@pilotmoon.com>
2024-01-07 12:50:19 +07:00
Wilfred Hughes 50a03b4b14
Merge pull request #614 from yuja/push-utqlvwnvuwrl
Fix dir-diff paths merging to not add duplicated entries from remainder
2024-01-05 08:47:24 +07:00
Wilfred Hughes 35a182dd42 Remove bool_to_int_with_if clippy config
This doesn't exist in Rust 1.63 (it was added in 1.65) and 1.67 moved
it to allow-by-default anyway.
2024-01-05 08:39:08 +07:00
Yuya Nishihara 19e21cda90 Fix dir-diff paths merging to not add duplicated entries from remainder
If lhs_paths and rhs_paths are ["a", "c"] and ["a", "b", "c"] respectively, the
loop ends with paths = ["a", "c", "b"], i = j = 2. We still need to deduplicate
"c" from the rhs_paths.

.into_iter() can't be used anymore since the seen set still borrows the paths.
2024-01-02 10:53:18 +07:00
Wilfred Hughes db0c150f61 Report permission changes
Fixes #605
2023-12-30 11:20:00 +07:00
Wilfred Hughes 68f28a8085 More use of renamed over extra_info 2023-12-29 19:51:14 +07:00
Wilfred Hughes b71c553d07 Clarify field that is a path description, not a path 2023-12-29 19:47:39 +07:00
Wilfred Hughes 5d2a4777dc Simlify pattern matches 2023-12-29 19:47:17 +07:00
Wilfred Hughes 8b90c95e01 When called with a single path, require conflict markers
Fixes #585
2023-12-29 19:39:44 +07:00
Wilfred Hughes c180fb52a9 Treat strict types in Haskell as atoms
This isn't ideal: it prevents a finegrained diff of syntax within a type, but it
beats claiming that the code is unchanged.

Fixes #607
2023-12-28 19:24:35 +07:00
Wilfred Hughes 26c58a25e8 Treat regex literals as atoms in Clojure 2023-12-17 10:46:15 +07:00
Wilfred Hughes 72348338aa Style warnings more prominently 2023-12-14 09:07:47 +07:00
Wilfred Hughes 5fd9dfe4a9 Treat *.xsd as XML
Fixes #602
2023-12-08 21:34:07 +07:00
Wilfred Hughes 4a8f983f2f
Merge pull request #579 from rody/feature/salesforce_apex_support
Add salesforce apex support
2023-12-07 08:45:33 +07:00
Yuya Nishihara 8e35c9272c Drop use of AtomicBool from diffing frontend
All diff consumers can now access to a mutable bool.
2023-12-07 08:37:42 +07:00
Yuya Nishihara d04a7cd78b Move diffing job to worker thread instead of printing loop
The scoped thread API allows this change, and I think it's slightly easier
to follow. We can also remove the AtomicBool.
2023-12-07 08:37:42 +07:00
Yuya Nishihara 44578368ab Use scoped thread API in directory diff frontend
Just a code cleanup. As the minimum Rust version is now 1.63.0, we don't need
to manage the spawned thread manually.
2023-12-07 08:37:42 +07:00
Wilfred Hughes 4b0fff2d19 cargo fmt 2023-12-05 08:28:37 +07:00
Rodolphe Blancho e18b5d0712
Merge branch 'master' into feature/salesforce_apex_support 2023-12-05 12:31:59 +07:00
Wilfred Hughes e01b2f9f83 Fix a clippy warning about nested ifs 2023-11-28 13:29:33 +07:00
Wilfred Hughes cac80e992a Avoid `res` locals in favour of more meaningful names 2023-11-28 13:27:27 +07:00
Wilfred Hughes 2adb2f8531 Include rustc version in --version output
Fixes #554
2023-11-28 13:07:33 +07:00
Wilfred Hughes 569f0038d1 Always filter blank lines at start and end in positions
Fixes #595
2023-11-28 12:35:28 +07:00
Wilfred Hughes d89d057345 Clarify parameter name 2023-11-28 11:57:11 +07:00
Wilfred Hughes 08853fa9b6 Clarify comment 2023-11-28 11:34:45 +07:00
Wilfred Hughes e96c9463a0 Fix typo 2023-11-28 11:15:11 +07:00
Wilfred Hughes f31106fddd Fix capitalisation in display name for SCSS 2023-11-24 19:42:16 +07:00
Wilfred Hughes 3e5783c2a7 Treat --sort-paths as a flag option 2023-11-24 01:11:26 +07:00
Nimrod Kor e9a8fda9cb
Skip dirs specified in gitignore (#574)
Take ignored dirs into consideration when calculating diff

Co-authored-by: Nimrod <nimrod@getbaz.com>
2023-11-24 00:48:55 +07:00
Milan Damen a8d6253509
Sort by path before outputting directory diff so that the order is always the same (#593)
* Sort by path before outputting directory diff so that the order is always the same

* Added feature flag --sort-paths (DFT_SORT_PATHS) to enable/disable sorting paths when diffing directory (default disabled)
2023-11-20 10:24:35 +07:00
Wilfred Hughes 1ec868e1df Update to latest line-numbers 2023-11-19 13:11:07 +07:00
Wilfred Hughes 1dbcd08a90 cargo fmt 2023-11-19 13:10:41 +07:00
Wilfred Hughes 8fd79c2885 Remove unused content length calculations 2023-11-18 17:31:40 +07:00
Wilfred Hughes fe62cf4cf5 Don't ignore novel blank lines
Fixes #575
2023-11-18 17:27:41 +07:00
Wilfred Hughes 1138a4623d Remove unused commit_hash struct field 2023-11-18 16:46:13 +07:00
Wilfred Hughes 4c387e4cfe Remove unused struct field 2023-11-18 16:46:13 +07:00
Wilfred Hughes f2b3b34bec Use pub(crate) everywhere for visibility
This isn't strictly necessary since difftastic is a binary-only
crate. However, it improves compiler warnings (see next commit) and
potentially helps future changes to make difftastic available as a
library.
2023-11-18 16:46:13 +07:00
Wilfred Hughes 60d0f61cbd Define a separate words module 2023-11-18 16:46:13 +07:00
Wilfred Hughes 635e62c19b Support .snap files
Closes #571
2023-11-18 14:50:54 +07:00
Wilfred Hughes 2e415f687d cargo fmt 2023-11-11 20:57:41 +07:00
Wilfred Hughes 142144e484 Clarify doc comment 2023-11-11 11:16:52 +07:00
Wilfred Hughes 27b14ae4c7 Clarify probably_punctuation 2023-11-11 11:14:49 +07:00
Wilfred Hughes 7321f663dc Enable some more clippy warnings 2023-11-11 10:48:22 +07:00
Wilfred Hughes 848984d482 Silence some clippy warnings 2023-11-11 10:47:26 +07:00
Wilfred Hughes 778a6bee9a Flatten nullable types in Kotlin
Workaround for #589 and #411
2023-10-26 08:56:37 +07:00
Wilfred Hughes 21ed3ec48b Add missing environment variable for --skip-unchanged
Fixes #581
2023-10-13 08:41:38 +07:00
Wilfred Hughes dfe48a29e1 Format bytes counts in logging in a human-friendly manner 2023-10-11 20:30:01 +07:00
Wilfred Hughes 81714c17ce
Merge pull request #573 from brneor/scss
Add Scss parser
2023-10-11 08:57:58 +07:00
Rodolphe Blancho 5256d9c98e Merge branch 'master' into feature/salesforce_apex_support 2023-10-11 09:56:51 +07:00
Wilfred Hughes 67dbf0e962 Add --strip-cr
Closes #486
2023-10-10 08:36:57 +07:00
Rodolphe Blancho 05d78ca741 add support for Salesforce Apex
Apex Language documentation:
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_dev_guide.htm

Uses https://github.com/aheber/tree-sitter-sfapex
2023-10-06 11:08:02 +07:00
Wilfred Hughes 992437db1d Show the language name when parsing fails 2023-09-28 00:33:49 +07:00
Wilfred Hughes 40403b2b8f Pass lang_conf with language so they're Some/None together 2023-09-27 23:51:45 +07:00
Wilfred Hughes 00f7ef8522 Improve variable name 2023-09-27 15:49:57 +07:00
Breno Reis 1bffcf4e2b
add support for SCSS 2023-09-20 14:26:43 +07:00
Wilfred Hughes aeb974ba7e Add TODO 2023-09-15 16:06:44 +07:00
Wilfred Hughes 6dd0c70767 Add TODO 2023-09-12 13:05:05 +07:00
Wilfred Hughes 1e7866b64e Do word diffing on text too 2023-09-12 13:03:27 +07:00
Wilfred Hughes 243a4a5f48 Group imports consistently
This corresponds to:

$ cargo +nightly fmt -- --config group_imports=StdExternalCrate

Since this option is only available on nightly, I'm not adding a
rustfmt.toml to enforce this, just doing it as a one-off run.
2023-09-12 12:32:51 +07:00
Wilfred Hughes 8731a1b908 Fix rustdoc warnings 2023-09-12 12:21:43 +07:00
Wilfred Hughes f3ba79f34d Qualify all difftastic imports with crate:: 2023-09-12 12:17:58 +07:00
Wilfred Hughes f06c611ed7 More XML file patterns 2023-09-09 10:18:11 +07:00
Wilfred Hughes d6fe1221a4 Add *.ui to the XML file extensions 2023-09-09 10:07:11 +07:00
Wilfred Hughes 577bb99228 Treat XSLT as XML 2023-09-09 00:12:22 +07:00
Wilfred Hughes 004a0da67f Flatten modifiers in C# to improve highlighting 2023-09-08 23:44:11 +07:00
Wilfred Hughes 9134593a39 Add XML support
Fixes #10
2023-09-08 23:43:20 +07:00
Wilfred Hughes d56f775f31 Highlight constructors consistently with type names 2023-09-03 01:30:22 +07:00
Wilfred Hughes a4ee2cf99e cargo fmt 2023-08-26 21:41:41 +07:00
Wilfred Hughes b78ba2da4b Use type names from line_numbers directly 2023-08-26 20:36:07 +07:00
Wilfred Hughes 41c9165c79 Use my line_numbers crate for newline position calculations 2023-08-26 16:25:32 +07:00
Wilfred Hughes ca44de78e1 Group overrides from the same language together
No functional change, but makes --list-languages easier to read.

Fixes #549
2023-08-25 08:22:28 +07:00
Wilfred Hughes 0db99d76c6 Allow a language override to include multiple globs 2023-08-24 08:47:59 +07:00
eth3lbert b6d8ecbd4f
feat: display commit info in --version (#558)
This improves --version output for #554.
2023-08-18 08:10:47 +07:00
Wilfred Hughes 803a3a673c Improve variable names 2023-08-18 00:28:17 +07:00
Alex Krantz 11a96e5aec Add JSON cli flag 2023-08-17 08:49:59 +07:00
Wilfred Hughes 11f457b5f9 Fix typo 2023-08-16 21:20:17 +07:00
Wilfred Hughes 191f42e9d5 Clippy fixes 2023-08-15 21:42:06 +07:00
Wilfred Hughes 6b1c82efdf Prefer Option<&T> over &Option<T> 2023-08-15 21:37:41 +07:00
Wilfred Hughes a43b9ae9eb Dim the extra information section in hunks 2023-08-15 21:33:11 +07:00
Wilfred Hughes e1f97e614f Improve wording of conflict information
Fixes #555
2023-08-15 17:52:02 +07:00
Wilfred Hughes e0a1405453 Add the ability to parse conflict markers and diff the two files 2023-08-15 09:01:15 +07:00
Wilfred Hughes f06e95ca02 Renamed `old_path` to `extra_info` and format it during option parsing
This allows us to use this field for other purposes that aren't
renames.
2023-08-14 08:41:42 +07:00
Wilfred Hughes f1ba399504 Move local variable closer to first use 2023-08-14 08:27:42 +07:00
Wilfred Hughes eeb2974967 Move option parsing before argument parsing
This is useful for additional mode parsing that wants to access these
options.
2023-08-13 21:34:42 +07:00
Wilfred Hughes 1c60f3efd3 Move content detection out of diff_file_content
This makes the function useful in cases when we already have a string,
not bytes.
2023-08-13 21:31:37 +07:00
Wilfred Hughes 3c702d0490 Use humansize for file size formatting 2023-08-12 22:34:11 +07:00
Wilfred Hughes 5f25bc0ebd Rename information in header should only be shown on first hunk
Fixes #553
2023-08-11 08:21:29 +07:00
Wilfred Hughes a187d7a134 Improve rename styling
It should use the heading with colour, consistent with other modes,
and the header should come before rename information.
2023-08-08 08:53:33 +07:00
Wilfred Hughes ba92a93f9b Fix rustc warning on recent nightly 2023-08-04 23:31:31 +07:00