Skip to content

Conversation

@sxyazi
Copy link
Owner

@sxyazi sxyazi commented Feb 5, 2025

This PR deprecates arrow -99999999 and arrow 99999999, replacing them with arrow top and arrow bot, respectively. -99999999 and 99999999 are still available but will trigger a warning.

This change is in preparation for an upcoming navigation wraparound feature — when the cursor reaches the top or bottom of the list, it will automatically jump to the opposite end.

Some users requested this feature, and I initially provided a plugin as a solution. However, I believe it's worth integrating into the core.

The issue is that when users enable this feature, pressing gg or G would cause the cursor to behave erratically since arrow 99999999 would make it loop through the file list multiple times, so top and bot (bottom) are introduced.

@sxyazi sxyazi merged commit e9fcab3 into main Feb 5, 2025
6 checks passed
@sxyazi sxyazi deleted the pr-ba8c9b28 branch February 5, 2025 13:35
macydnah added a commit to macydnah/dotfiles that referenced this pull request Feb 10, 2025
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 11, 2025
⚠️ **CAUTION: this is a major update, indicating a breaking change!** ⚠️

This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [sxyazi/yazi](https://github.com/sxyazi/yazi) | major | `v0.4.2` -> `v25.2.7` |

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>sxyazi/yazi (sxyazi/yazi)</summary>

### [`v25.2.7`](https://github.com/sxyazi/yazi/releases/tag/v25.2.7)

[Compare Source](sxyazi/yazi@v0.4.2...v25.2.7)

#### Deprecated

-   `ya.md5()` has been deprecated in favor of the new `ya.hash()`, in sxyazi/yazi#2168
-   The plugin entry file `init.lua` has been deprecated in favor of the new `main.lua`, in sxyazi/yazi#2168
-   `arrow -99999999` and `arrow 99999999` have been deprecated in favor of the new `arrow top` and `arrow bot`, in sxyazi/yazi#2294
-   The `--args` option in the `plugin` command has been deprecated in favor of a new 2nd positional parameter, in sxyazi/yazi#2299
-   The numeric return value of the preloader has been deprecated in favor of a new boolean return value, in sxyazi/yazi#2253

#### The [`mount.yazi`](https://github.com/yazi-rs/plugins/tree/main/mount.yazi) Plugin

For a long time, I've been receiving requests from users for a mount manager, but never had the time to finish it. But now — it's here!

[`mount.yazi`](https://github.com/yazi-rs/plugins/tree/main/mount.yazi) provides disk mount, unmount, and eject functionality:

https://github.com/user-attachments/assets/b97b8156-e7ca-490c-88a2-8624f4190b29

Done in sxyazi/yazi#2199.

#### Simplification of `shell` and `plugin` commands

With sxyazi/yazi#2298, you can now write shell scripts directly after `--` (end of options marker). Everything after `--` will be treated as raw text, so no more escaping is required, greatly simplifying the writing of complex commands.

For example, previously, a simple `echo "hello 'world'"` would look like this:

```toml
[[manager.prepend_keymap]]
on  = "<C-e>"
run = '''
  shell --block 'echo "hello '\''world'\''"'
'''
```

This resulted in nested quotes, which was error-prone and unintuitive.

Now, you can directly include the entire shell script as plain text after `--` without any escaping:

```toml
[[manager.prepend_keymap]]
on  = "<C-e>"
run = '''
  shell --block -- echo "hello 'world'"
'''
```

Similarly, with sxyazi/yazi#2299, the `plugin` command usage has been simplified as well. For instance:

```toml
[[manager.prepend_keymap]]
on  = "<C-e>"
run = "plugin search --args='\'hello world\''"
```

Can now be written as:

```toml
[[manager.prepend_keymap]]
on  = "<C-e>"
run = "plugin search -- 'hello world'"
```

#### Replace Mode and Vim Motions (`W`, `E`, `B`, `^`, `_`) for Inputs

The Input component now supports replace mode and several new Vim motions, including:

-   `W`: Move forward to the start of the next WORD
-   `E`: Move forward to the end of the current or next WORD
-   `B`: Move back to the start of the current or previous WORD
-   `^`: Move to the first non-whitespace character
-   `_`: Move to the first non-whitespace character

Thanks to [@&#8203;dxrcy](https://github.com/dxrcy) for the work in sxyazi/yazi#2143!

#### Package Manager Enhancements

The package manager now supports the following new features:

-   `ya pack -d` to delete a package (thanks [@&#8203;MrAsler](https://github.com/MrAsler), sxyazi/yazi#2181)
-   Support for adding and removing multiple packages with a single command (thanks [@&#8203;evpeople](https://github.com/evpeople), sxyazi/yazi#2257)

#### Support Local `tmux` Image Preview Over SSH

Now, when you start tmux locally, connect to a remote SSH session, and run Yazi on the remote host, you'll get image preview support out of the box.

Done in sxyazi/yazi#2229.

#### New `@since` Plugin Annotation to Specify the Minimum Supported Yazi Version

You can now **optionally** specify the minimum supported Yazi version in your plugin:

```lua
--- @&#8203;since 25.2.7

return {
  entry = function() end
}
```

If specified, and the user's Yazi version is lower than the given version, they will receive an error message preventing the plugin from running accidentally.

Done in sxyazi/yazi#2290

#### New `ya.confirm()` API

The new `ya.confirm()` API allows you to show a confirmation prompt to the user:

```lua
local answer = ya.confirm {
  pos = { "center", w = 40, h = 10 },
  title = "Test",
  content = "Hello, World!",
}
```

You can also apply a UI element to the title and content to customize the appearance:

```lua
local answer = ya.confirm {
  pos = { "center", w = 40, h = 10 },
  title = ui.Line("Test"):fg("yellow"):bold(),
  content = ui.Text("Hello, World!"):bg("red"):fg("#ffffff"),
}
```

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
bitterhalt added a commit to bitterhalt/dotfiles that referenced this pull request Feb 15, 2025
Raideeen added a commit to Raideeen/relative-motions.yazi that referenced this pull request Feb 18, 2025
Yazi's API has changed, requiring the use of the "arrow top" and "arrow bottom" commands
to jump to the top or bottom of the current pane. See the related change here:
sxyazi/yazi#2294.

This commit updates the plugin to use the new commands, preventing the popup
from appearing when navigating panes in newer Yazi versions. :)
Raideeen added a commit to Raideeen/relative-motions.yazi that referenced this pull request Feb 18, 2025
Yazi's API has changed, requiring the use of the "arrow top" and "arrow bottom" commands
to jump to the top or bottom of the current pane. See the related change here:
sxyazi/yazi#2294.

This commit updates the plugin to use the new commands, preventing the popup
from appearing when navigating panes in newer Yazi versions. :)

fix: wrong keyword
Raideeen added a commit to Raideeen/relative-motions.yazi that referenced this pull request Feb 18, 2025
Yazi's API has changed, requiring the use of the "arrow top" and "arrow bottom" commands
to jump to the top or bottom of the current pane. See the related change here:
sxyazi/yazi#2294.

This commit updates the plugin to use the new commands, preventing the popup
from appearing when navigating panes in newer Yazi versions. :)

fix: wrong keyword
Raideeen added a commit to Raideeen/relative-motions.yazi that referenced this pull request Feb 19, 2025
Yazi's API has changed, requiring the use of the "arrow top" and "arrow bottom" commands
to jump to the top or bottom of the current pane. See the related change here:
sxyazi/yazi#2294.

This commit updates the plugin to use the new commands, preventing the popup
from appearing when navigating panes in newer Yazi versions. :)

fix: wrong keyword
@supertrianguloid
Copy link

This tip probably needs to get updated. Is there a recommendation for how to get this to work while the native wraparound is still on the way? (I don't know Lua).

Zen-Path pushed a commit to Zen-Path/flexycon that referenced this pull request Feb 24, 2025
@sxyazi
Copy link
Owner Author

sxyazi commented Feb 24, 2025

This tip probably needs to get updated. Is there a recommendation for how to get this to work while the native wraparound is still on the way? (I don't know Lua).

That tip works fine and doesn't need any fixing.

If I must guess, you're referring to the warning that appears when using that tip, which was fixed in 52a5ab5#diff-84d365f5e3d97756e98c1133e3137398046fcddf708b807ddb2d0d6343926767 – the warning threshold has been increased from 999 to 999999.

@supertrianguloid
Copy link

This tip probably needs to get updated. Is there a recommendation for how to get this to work while the native wraparound is still on the way? (I don't know Lua).

That tip works fine and doesn't need any fixing.

If I must guess, you're referring to the warning that appears when using that tip, which was fixed in 52a5ab5#diff-84d365f5e3d97756e98c1133e3137398046fcddf708b807ddb2d0d6343926767 – the warning threshold has been increased from 999 to 999999.

Yes that was it! Thanks!

Zen-Path pushed a commit to Zen-Path/flexycon that referenced this pull request Feb 25, 2025
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 27, 2025
Zen-Path pushed a commit to Zen-Path/flexycon that referenced this pull request Apr 26, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants