Currently, zsh and fish shell completions show incomplete descriptions
for certain commands. For example:
docs -- Open Homebrew's online documentation (https://docs
rbenv-sync -- Create symlinks for Homebrew's installed Ruby versions in ~/
This is because `Commands.command_description` produces incomplete
short descriptions for the commands having a dot (from a URL or a path)
in the first sentence; the dot is misinterpreted as a full stop:
brew(main):001:0> Commands.command_description("docs", short: true)
=> "Open Homebrew's online documentation (https://docs"
brew(main):002:0> Commands.command_description("rbenv-sync", short: true)
=> "Create symlinks for Homebrew's installed Ruby versions in ~/"
We can improve the sentence splitting logic by only splitting at dots
either at the end or followed by a whitespace. Now With this change:
brew(main):001:0> Commands.command_description("docs", short: true)
=> "Open Homebrew's online documentation (https://docs.brew.sh) in a browser"
brew(main):002:0> Commands.command_description("rbenv-sync", short: true)
=> "Create symlinks for Homebrew's installed Ruby versions in ~/.rbenv/versions"
Signed-off-by: Ruoyu Zhong <zhongruoyu@outlook.com>
Handle good things like:
```ruby
url "https://example.org/download",
verified: "example.org/download" # This is fine.
```
And bad things like:
```ruby
url "https://example.org/",
verified: "example.org" # This should end with a slash.
```
Currently, doing `brew install --only-dependencies` with an unlinked
formula does nothing and returns a message saying the formula is already
installed but just not linked.
I think that we should just install the dependencies as requested here
instead of complaining that the formula isn't linked.
Before:
❯ brew unlink adplug
Unlinking /usr/local/Cellar/adplug/2.3.3... 8 symlinks removed.
❯ brew install --only-dependencies adplug
Warning: adplug 2.3.3 is already installed, it's just not linked.
To link this version, run:
brew link adplug
After:
❯ brew install --only-dependencies adplug
==> Fetching dependencies for adplug: libbinio
==> Fetching libbinio
==> Downloading https://ghcr.io/v2/homebrew/core/libbinio/manifests/1.5
[snip]
See Homebrew/homebrew-core#127133 for additional context.
This was not handled at all during deserialization.
The string argument gets turned into an array internally
but we skip that to preserve all args in the @run_params
variable. That means that we have to handle strings when
deserializing too.