feat: types for Yazi v25.5.28

This commit is contained in:
sxyazi
2025-05-28 23:40:16 +08:00
parent f9b3f8876e
commit 43ff05269a

View File

@@ -1157,37 +1157,37 @@ ya = ya
-- Tab-specific user preferences. -- Tab-specific user preferences.
---@class (exact) tab__Pref ---@class (exact) tab__Pref
-- File sorting method. See [`sort_by`](/docs/configuration/yazi#manager.sort_by) for details. -- File sorting method. See [`sort_by`](/docs/configuration/yazi#mgr.sort_by) for details.
-- | | | -- | | |
-- | ---- | ---------------------------------------------------------------------------------------------------------------- | -- | ---- | ---------------------------------------------------------------------------------------------------------------- |
-- | Type | `"none"` \| `"mtime"` \| `"btime"` \| `"extension"` \| `"alphabetical"` \| `"natural"` \| `"size"` \| `"random"` | -- | Type | `"none"` \| `"mtime"` \| `"btime"` \| `"extension"` \| `"alphabetical"` \| `"natural"` \| `"size"` \| `"random"` |
---@field sort_by "none"|"mtime"|"btime"|"extension"|"alphabetical"|"natural"|"size"|"random" ---@field sort_by "none"|"mtime"|"btime"|"extension"|"alphabetical"|"natural"|"size"|"random"
-- Sort case-sensitively. See [`sort_sensitive`](/docs/configuration/yazi#manager.sort_sensitive) for details. -- Sort case-sensitively. See [`sort_sensitive`](/docs/configuration/yazi#mgr.sort_sensitive) for details.
-- | | | -- | | |
-- | ---- | --------- | -- | ---- | --------- |
-- | Type | `boolean` | -- | Type | `boolean` |
---@field sort_sensitive boolean ---@field sort_sensitive boolean
-- Display files in reverse order. See [`sort_reverse`](/docs/configuration/yazi#manager.sort_reverse) for details. -- Display files in reverse order. See [`sort_reverse`](/docs/configuration/yazi#mgr.sort_reverse) for details.
-- | | | -- | | |
-- | ---- | --------- | -- | ---- | --------- |
-- | Type | `boolean` | -- | Type | `boolean` |
---@field sort_reverse boolean ---@field sort_reverse boolean
-- Display directories first. See [`sort_dir_first`](/docs/configuration/yazi#manager.sort_dir_first) for details. -- Display directories first. See [`sort_dir_first`](/docs/configuration/yazi#mgr.sort_dir_first) for details.
-- | | | -- | | |
-- | ---- | --------- | -- | ---- | --------- |
-- | Type | `boolean` | -- | Type | `boolean` |
---@field sort_dir_first boolean ---@field sort_dir_first boolean
-- Transliterate filenames for sorting. See [`sort_translit`](/docs/configuration/yazi#manager.sort_translit) for details. -- Transliterate filenames for sorting. See [`sort_translit`](/docs/configuration/yazi#mgr.sort_translit) for details.
-- | | | -- | | |
-- | ---- | --------- | -- | ---- | --------- |
-- | Type | `boolean` | -- | Type | `boolean` |
---@field sort_translit boolean ---@field sort_translit boolean
-- Line mode. See [`linemode`](/docs/configuration/yazi#manager.linemode) for details. -- Line mode. See [`linemode`](/docs/configuration/yazi#mgr.linemode) for details.
-- | | | -- | | |
-- | ---- | ------------------------------------------------------------------------------------------ | -- | ---- | ------------------------------------------------------------------------------------------ |
-- | Type | `string` \| `"none"` \| `"size"` \| `"btime"` \| `"mtime"` \| `"permissions"` \| `"owner"` | -- | Type | `string` \| `"none"` \| `"size"` \| `"btime"` \| `"mtime"` \| `"permissions"` \| `"owner"` |
---@field linemode string|"none"|"size"|"btime"|"mtime"|"permissions"|"owner" ---@field linemode string|"none"|"size"|"btime"|"mtime"|"permissions"|"owner"
-- Show hidden files. See [`show_hidden`](/docs/configuration/yazi#manager.show_hidden) for details. -- Show hidden files. See [`show_hidden`](/docs/configuration/yazi#mgr.show_hidden) for details.
-- | | | -- | | |
-- | ---- | --------- | -- | ---- | --------- |
-- | Type | `boolean` | -- | Type | `boolean` |
@@ -1341,7 +1341,7 @@ ya = ya
-- | Return | `boolean` | -- | Return | `boolean` |
---@field is_selected fun(self: self): boolean ---@field is_selected fun(self: self): boolean
-- File find status: -- File find status:
-- - `nil` if if the user not in [`find`](/docs/configuration/keymap#manager.find) mode. -- - `nil` if if the user not in [`find`](/docs/configuration/keymap#mgr.find) mode.
-- - `nil` if current file is not related to the keyword entered by the user. -- - `nil` if current file is not related to the keyword entered by the user.
-- - `integer, integer` if current file is one of the files found, where first is its index among the results and second is the total count of files found. -- - `integer, integer` if current file is one of the files found, where first is its index among the results and second is the total count of files found.
-- | In/Out | Type | -- | In/Out | Type |
@@ -1461,7 +1461,7 @@ ya = ya
-- | ---- | ---------------------- | -- | ---- | ---------------------- |
-- | Type | [`rt::Term`](#rt-term) | -- | Type | [`rt::Term`](#rt-term) |
---@field term rt__Term ---@field term rt__Term
-- User preferences under [`[manager]`](/docs/configuration/yazi#manager). -- User preferences under [`[mgr]`](/docs/configuration/yazi#mgr).
-- | | | -- | | |
-- | ---- | ------- | -- | ---- | ------- |
-- | Type | `table` | -- | Type | `table` |
@@ -1484,7 +1484,7 @@ ya = ya
-- You can access the user's theme and flavor configuration through `th`. -- You can access the user's theme and flavor configuration through `th`.
---@class (exact) th ---@class (exact) th
-- See [`[manager]`](/docs/configuration/theme#manager). -- See [`[mgr]`](/docs/configuration/theme#mgr).
-- | | | -- | | |
-- | ---- | ------- | -- | ---- | ------- |
-- | Type | `table` | -- | Type | `table` |
@@ -1609,9 +1609,9 @@ ya = ya
-- | Return | `unknown` | -- | Return | `unknown` |
-- | Available | Sync context only | -- | Available | Sync context only |
---@field render fun(): unknown ---@field render fun(): unknown
-- Send a command to the [`[manager]`](/docs/configuration/keymap#manager) without waiting for the executor to execute: -- Send a command to the [`[mgr]`](/docs/configuration/keymap#mgr) without waiting for the executor to execute:
-- ```lua -- ```lua
-- ya.mgr_emit("my-cmd", { "hello", 123, foo = true, bar_baz = "world" }) -- ya.emit("my-cmd", { "hello", 123, foo = true, bar_baz = "world" })
-- -- Equivalent to: -- -- Equivalent to:
-- -- my-cmd "hello" "123" --foo --bar-baz="world" -- -- my-cmd "hello" "123" --foo --bar-baz="world"
-- ``` -- ```
@@ -1620,7 +1620,7 @@ ya = ya
-- | `cmd` | `string` | - | -- | `cmd` | `string` | - |
-- | `args` | `{ [integer\|string]: Sendable }` | Table values are [Sendable][sendable] that follow [Ownership transfer rules][ownership] | -- | `args` | `{ [integer\|string]: Sendable }` | Table values are [Sendable][sendable] that follow [Ownership transfer rules][ownership] |
-- | Return | `unknown` | - | -- | Return | `unknown` | - |
---@field mgr_emit fun(cmd: string, args: { [integer|string]: Sendable }): unknown ---@field emit fun(cmd: string, args: { [integer|string]: Sendable }): unknown
-- Display the image of `url` within the `rect`, and the image will downscale to fit the area automatically: -- Display the image of `url` within the `rect`, and the image will downscale to fit the area automatically:
-- | In/Out | Type | -- | In/Out | Type |
-- | --------- | ------------------ | -- | --------- | ------------------ |
@@ -1774,7 +1774,7 @@ ya = ya
-- | Available | Async context only | -- | Available | Async context only |
---@field preview_code fun(opts: { area: ui.Rect, file: File, mime: string, skip: integer }): Error?, integer? ---@field preview_code fun(opts: { area: ui.Rect, file: File, mime: string, skip: integer }): Error?, integer?
-- ```lua -- ```lua
-- ya.preview_widgets({ -- local opts = {
-- -- Available preview area. -- -- Available preview area.
-- area = area, -- area = area,
-- -- File to be previewed. -- -- File to be previewed.
@@ -1784,17 +1784,22 @@ ya = ya
-- -- Number of units to skip. The units depend on your previewer, -- -- Number of units to skip. The units depend on your previewer,
-- -- such as lines for code and percentages for videos. -- -- such as lines for code and percentages for videos.
-- skip = 1, -- skip = 1,
-- }, { -- }
-- ui.Text("Hello, World!"):area(area), -- -- Preview a widget in the specified area.
-- ya.preview_widget(opts, ui.Line("Hello world"):area(area))
-- -- Preview multiple widgets in the specified area.
-- ya.preview_widget(opts, {
-- ui.Line("Hello"):area(area1),
-- ui.Line("world"):area(area2),
-- }) -- })
-- ``` -- ```
-- | In/Out | Type | -- | In/Out | Type |
-- | --------- | --------------------------------------------------------- | -- | --------- | --------------------------------------------------------- |
-- | `opts` | `{ area: Rect, file: File, mime: string, skip: integer }` | -- | `opts` | `{ area: Rect, file: File, mime: string, skip: integer }` |
-- | `widgets` | `Renderable[]` | -- | `widget` | `Renderable` \| `Renderable[]` |
-- | Return | `unknown` | -- | Return | `unknown` |
-- | Available | Async context only | -- | Available | Async context only |
---@field preview_widgets fun(opts: { area: ui.Rect, file: File, mime: string, skip: integer }, widgets: Renderable[]): unknown ---@field preview_widget fun(opts: { area: ui.Rect, file: File, mime: string, skip: integer }, widget: Renderable|Renderable[]): unknown
-- See [Async context](/docs/plugins/overview#async-context). -- See [Async context](/docs/plugins/overview#async-context).
-- | In/Out | Type | -- | In/Out | Type |
-- | ------ | -------------------- | -- | ------ | -------------------- |
@@ -2094,26 +2099,18 @@ ya = ya
-- Compared to Lua's `os.execute`, it provides many comprehensive and convenient methods, and the entire process is async. -- Compared to Lua's `os.execute`, it provides many comprehensive and convenient methods, and the entire process is async.
-- It takes better advantage of the benefits of concurrent scheduling. However, it can only be used in async contexts, such as preloaders, previewers, and async functional plugins. -- It takes better advantage of the benefits of concurrent scheduling. However, it can only be used in async contexts, such as preloaders, previewers, and async functional plugins.
---@class (exact) Command ---@class (exact) Command
-- Append an argument to the command: -- Append one or more arguments to the command:
-- ```lua -- ```lua
-- local cmd = Command("ls"):arg("-a"):arg("-l") -- local cmd = Command("ls"):arg("-a"):arg("-l")
-- -- Equivalent to:
-- local cmd = Command("ls"):arg { "-a", "-l" }
-- ``` -- ```
-- | In/Out | Type | -- | In/Out | Type |
-- | ------ | -------- | -- | ------ | ---------------------- |
-- | `self` | `Self` | -- | `self` | `Self` |
-- | `arg` | `string` | -- | `arg` | `string` \| `string[]` |
-- | Return | `self` | -- | Return | `self` |
---@field arg fun(self: self, arg: string): self ---@field arg fun(self: self, arg: string|string[]): self
-- Append multiple arguments to the command:
-- ```lua
-- local cmd = Command("ls"):args({ "-a", "-l" }):args({ "-h" })
-- ```
-- | In/Out | Type |
-- | ------ | ---------- |
-- | `self` | `Self` |
-- | `args` | `string[]` |
-- | Return | `self` |
---@field args fun(self: self, args: string[]): self
-- Set the current working directory of the command: -- Set the current working directory of the command:
-- ```lua -- ```lua
-- local cmd = Command("ls"):cwd("/root") -- local cmd = Command("ls"):cwd("/root")