Allow multiple hyperlinks per line#1909
Conversation
| let formatted_commit = | ||
| format_osc8_hyperlink(&commit_link_format.replace("{commit}", commit), commit); |
There was a problem hiding this comment.
What about filtering out pure numbers here again, as mentioned in the issue?
There was a problem hiding this comment.
Yes, why not. The posterior probability of such a string being a number is going to be considerably higher than that of it being a commit. Multiplied by the probability that someone happened to care about the link to their improbably-digit-rich commit...
| commit = commit, | ||
| osc = "\x1b]", | ||
| st = "\x1b\\" | ||
| ); |
There was a problem hiding this comment.
Is there a reason that we can't use format_osc8_hyperlink here also? And beyond that, The two branches of this function are quite substantial and look very similar -- did you decide it wasn't attractive to unite them?
There was a problem hiding this comment.
Right, just didn't want think about how to nicely factor that out :) - What about this HyperlinkCommits helper now?
dandavison
left a comment
There was a problem hiding this comment.
Great! Made a couple of comments but feel free to merge when you're happy with it.
| format!( | ||
| "{osc}8;;{url}{st}{commit}{osc}8;;{st}", | ||
| url = repo.format_commit_url(commit), | ||
| commit = commit, | ||
| osc = "\x1b]", | ||
| st = "\x1b\\" |
There was a problem hiding this comment.
Can be replaced with format_osc8_hyperlink(), right?
There was a problem hiding this comment.
Yes I believe so. I'm not sure why the previous code wasn't already using that. Hopefully just a historical accident rather than a Chesterton's fence.
There was a problem hiding this comment.
Done (tests agree)!
Previously only the last commit was linked. Do not link numbers (technically also commits), and stop after finding 12 commits on a line.
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [dandavison/delta](https://github.com/dandavison/delta) | minor | `0.18.2` → `0.19.1` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>dandavison/delta (dandavison/delta)</summary> ### [`v0.19.1`](https://github.com/dandavison/delta/releases/tag/0.19.1) [Compare Source](dandavison/delta@0.19.0...0.19.1) This patch release fixes a release automation [bug](dandavison/delta#2127): release [0.19.0](https://github.com/dandavison/delta/releases/tag/0.19.0) did not include all release binaries. #### What's Changed - Fix CD: replace defunct ubuntu-20.04 runners by [@​dandavison](https://github.com/dandavison) in [#​2129](dandavison/delta#2129) **Full Changelog**: <dandavison/delta@0.19.0...0.19.1> ### [`v0.19.0`](https://github.com/dandavison/delta/releases/tag/0.19.0) [Compare Source](dandavison/delta@0.18.2...0.19.0) Tons of improvements; thanks very much to all delta contributors. **This release is missing several binaries due to a [bug in the GitHub Actions release workflow](dandavison/delta#2127). Please use <https://github.com/dandavison/delta/releases/tag/0.19.1> instead.** #### What's Changed - Do not double panic in FakeParentArgs::drop by [@​dvermd](https://github.com/dvermd) in [#​1856](dandavison/delta#1856) - Improve blame file type detection ([#​1803](dandavison/delta#1803)) by [@​dvermd](https://github.com/dvermd) in [#​1829](dandavison/delta#1829) - Use same example config in manual as README by [@​dandavison](https://github.com/dandavison) in [#​1879](dandavison/delta#1879) - Clarify grep highlighter-related code by [@​dandavison](https://github.com/dandavison) in [#​1877](dandavison/delta#1877) - Don't set colorMoved in introductory instructions by [@​dandavison](https://github.com/dandavison) in [#​1884](dandavison/delta#1884) - Recommend zdiff3 merge.conflictStyle by [@​adamchainz](https://github.com/adamchainz) in [#​1260](dandavison/delta#1260) - Add themes `weeping-willow`, `mirthful-willow` by [@​lvdh](https://github.com/lvdh) in [#​1864](dandavison/delta#1864) - CI: switch to macos-13, as 12 will be unsupported soon by [@​th1000s](https://github.com/th1000s) in [#​1890](dandavison/delta#1890) - Add optional capture-output writer to run\_app() by [@​th1000s](https://github.com/th1000s) in [#​1889](dandavison/delta#1889) - Center-align README content by [@​dandavison](https://github.com/dandavison) in [#​1893](dandavison/delta#1893) - Redundant Option Checks, Unwrap Safety by [@​sharma-shray](https://github.com/sharma-shray) in [#​1892](dandavison/delta#1892) - Add console commands for git configuration by [@​harmtemolder](https://github.com/harmtemolder) in [#​1896](dandavison/delta#1896) - Honor pager path when checking less version by [@​dandavison](https://github.com/dandavison) in [#​1903](dandavison/delta#1903) - Rename some variables by [@​dandavison](https://github.com/dandavison) in [#​1904](dandavison/delta#1904) - Delete now-unused pricate homebrew formula step from Makefile (III) by [@​dvermd](https://github.com/dvermd) in [#​1830](dandavison/delta#1830) - Support {host} in hyperlinks by [@​dandavison](https://github.com/dandavison) in [#​1901](dandavison/delta#1901) - Allow multiple hyperlinks per line by [@​th1000s](https://github.com/th1000s) in [#​1909](dandavison/delta#1909) - Clippy 1.83 by [@​th1000s](https://github.com/th1000s) in [#​1918](dandavison/delta#1918) - Support external subcommands: rg, diff, git-show (etc.) by [@​th1000s](https://github.com/th1000s) in [#​1769](dandavison/delta#1769) - Don't keep subcommand stdout around by [@​th1000s](https://github.com/th1000s) in [#​1920](dandavison/delta#1920) - hyperlink commit hashes of length 7 as well by [@​th1000s](https://github.com/th1000s) in [#​1924](dandavison/delta#1924) - clippy 1.84 fix by [@​th1000s](https://github.com/th1000s) in [#​1938](dandavison/delta#1938) - chore(deps): update git2 to use libgit2 1.9 by [@​chenrui333](https://github.com/chenrui333) in [#​1930](dandavison/delta#1930) - Suggest minimum bat version in manual by [@​ernstki](https://github.com/ernstki) in [#​1941](dandavison/delta#1941) - Upgrade unicode-width to v0.1.14 (but still < 0.2.0) by [@​th1000s](https://github.com/th1000s) in [#​1937](dandavison/delta#1937) - Update terminal-colorsaurus version to 0.4.8 by [@​rashil2000](https://github.com/rashil2000) in [#​1936](dandavison/delta#1936) - Fix index out of bounds crash for '@​@​ @​@​' hunk header by [@​adamchainz](https://github.com/adamchainz) in [#​1995](dandavison/delta#1995) - Tune themes weeping-willow, mirthful-willow by [@​lvdh](https://github.com/lvdh) in [#​2011](dandavison/delta#2011) - clippy 1.88 fixes by [@​injust](https://github.com/injust) in [#​2016](dandavison/delta#2016) - Fix diff output when a diff ends with a mode change by [@​th1000s](https://github.com/th1000s) in [#​2023](dandavison/delta#2023) - fix: `cargo install git-delta --locked` fails on systems with GCC 15 by [@​tquin](https://github.com/tquin) in [#​2007](dandavison/delta#2007) - Normalize `merge.conflictStyle` casing by [@​injust](https://github.com/injust) in [#​2015](dandavison/delta#2015) - Styled zero lines fix by [@​th1000s](https://github.com/th1000s) in [#​1916](dandavison/delta#1916) - config: add setup instructions for Jujutsu (jj) vcs by [@​arjunmahishi](https://github.com/arjunmahishi) in [#​2048](dandavison/delta#2048) - all: fix clippy complaints by [@​charlievieth](https://github.com/charlievieth) in [#​2038](dandavison/delta#2038) - Cache the Git remote URL to speed up rendering hyperlinks by [@​charlievieth](https://github.com/charlievieth) in [#​1940](dandavison/delta#1940) - deps: update cc by [@​ognevny](https://github.com/ognevny) in [#​2053](dandavison/delta#2053) - rg json handling: fix line comment highlighting by [@​th1000s](https://github.com/th1000s) in [#​2057](dandavison/delta#2057) - Update dirs dependency to version 6 by [@​musicinmybrain](https://github.com/musicinmybrain) in [#​2063](dandavison/delta#2063) - default line number to 1 for hyperlinks by [@​schpet](https://github.com/schpet) in [#​2061](dandavison/delta#2061) - Fix line numbers showing filename when hyperlinks enabled by [@​tsvikas](https://github.com/tsvikas) in [#​2058](dandavison/delta#2058) - less hist file: look at xdg paths by [@​th1000s](https://github.com/th1000s) in [#​2065](dandavison/delta#2065) - CI: remove x86 apple/macOS by [@​th1000s](https://github.com/th1000s) in [#​2074](dandavison/delta#2074) - Update bat dependency from 0.24 to 0.26 by [@​dandavison](https://github.com/dandavison) in [#​2115](dandavison/delta#2115) #### New Contributors - [@​dvermd](https://github.com/dvermd) made their first contribution in [#​1856](dandavison/delta#1856) - [@​lvdh](https://github.com/lvdh) made their first contribution in [#​1864](dandavison/delta#1864) - [@​sharma-shray](https://github.com/sharma-shray) made their first contribution in [#​1892](dandavison/delta#1892) - [@​harmtemolder](https://github.com/harmtemolder) made their first contribution in [#​1896](dandavison/delta#1896) - [@​ernstki](https://github.com/ernstki) made their first contribution in [#​1941](dandavison/delta#1941) - [@​tquin](https://github.com/tquin) made their first contribution in [#​2007](dandavison/delta#2007) - [@​arjunmahishi](https://github.com/arjunmahishi) made their first contribution in [#​2048](dandavison/delta#2048) - [@​charlievieth](https://github.com/charlievieth) made their first contribution in [#​2038](dandavison/delta#2038) - [@​ognevny](https://github.com/ognevny) made their first contribution in [#​2053](dandavison/delta#2053) - [@​musicinmybrain](https://github.com/musicinmybrain) made their first contribution in [#​2063](dandavison/delta#2063) - [@​schpet](https://github.com/schpet) made their first contribution in [#​2061](dandavison/delta#2061) - [@​tsvikas](https://github.com/tsvikas) made their first contribution in [#​2058](dandavison/delta#2058) **Full Changelog**: <dandavison/delta@0.18.2...0.19.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44OS42IiwidXBkYXRlZEluVmVyIjoiNDMuODkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Previously only the last commit was linked
Do not link numbers (technically also commits), and stop after
finding 12 commits on a line.
Fixes #1907
I'd want to enhance all the current assertions with pretty_assertions, that is no work compared to using insta.