diff options
| author | ryukamish <[email protected]> | 2026-04-11 16:06:45 +0530 |
|---|---|---|
| committer | ryukamish <[email protected]> | 2026-04-11 16:06:45 +0530 |
| commit | 607891801fbf2051a0c9062d15a445dd238c1e1b (patch) | |
| tree | 33b8cfba2355b498addea05e385b06d46cced30f /mpv/scripts/file-browser/modules/defs | |
| parent | 6fbde2906e3bb2d4d1df23f6374d8a6a0aef870f (diff) | |
add: mako and mpv configs
Diffstat (limited to 'mpv/scripts/file-browser/modules/defs')
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/file-browser.lua | 3 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/keybind.lua | 39 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/list.lua | 25 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/mp/defaults.lua | 148 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/mp/input.lua | 21 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/mp/msg.lua | 32 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/mp/options.lua | 11 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/mp/utils.lua | 43 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/parser.lua | 41 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/state.lua | 21 | ||||
| -rw-r--r-- | mpv/scripts/file-browser/modules/defs/user-input.lua | 28 |
11 files changed, 412 insertions, 0 deletions
diff --git a/mpv/scripts/file-browser/modules/defs/file-browser.lua b/mpv/scripts/file-browser/modules/defs/file-browser.lua new file mode 100644 index 0000000..055d4df --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/file-browser.lua @@ -0,0 +1,3 @@ +---@meta file-browser + +return require 'modules.apis.fb' diff --git a/mpv/scripts/file-browser/modules/defs/keybind.lua b/mpv/scripts/file-browser/modules/defs/keybind.lua new file mode 100644 index 0000000..a903d46 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/keybind.lua @@ -0,0 +1,39 @@ +---@meta _ + +---@class KeybindFlags +---@field repeatable boolean? +---@field scalable boolean? +---@field complex boolean? + + +---@class KeybindCommandTable + + +---@class Keybind +---@field key string +---@field command KeybindCommand +---@field api_version string? +--- +---@field name string? +---@field condition string? +---@field flags KeybindFlags? +---@field filter ('file'|'dir')? +---@field parser string? +---@field multiselect boolean? +---@field multi-type ('repeat'|'concat')? +---@field delay number? +---@field concat-string string? +---@field passthrough boolean? +--- +---@field prev_key Keybind? The keybind that was previously set to the same key. +---@field codes Set<string>? Any substituation codes used by the command table. +---@field condition_codes Set<string>? Any substitution codes used by the condition string. +---@field addon boolean? Whether the keybind was created by an addon. + + +---@alias KeybindFunctionCallback async fun(keybind: Keybind, state: State, co: thread) + +---@alias KeybindCommand KeybindFunctionCallback|KeybindCommandTable[] +---@alias KeybindTuple [string,string,KeybindCommand,KeybindFlags?] +---@alias KeybindTupleStrict [string,string,KeybindFunctionCallback,KeybindFlags?] +---@alias KeybindList (Keybind|KeybindTuple)[] diff --git a/mpv/scripts/file-browser/modules/defs/list.lua b/mpv/scripts/file-browser/modules/defs/list.lua new file mode 100644 index 0000000..b2133b6 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/list.lua @@ -0,0 +1,25 @@ +---@meta _ + +---@alias List Item[] + +---Represents an item returned by the parsers. +---@class Item +---@field type 'file'|'dir' +---@field name string +---@field label string? +---@field path string? +---@field ass string? +---@field redirect boolean? +---@field mpv_options string|{[string]: unknown}? + + +---The Opts table returned by the parsers. +---@class Opts +---@field filtered boolean? +---@field sorted boolean? +---@field directory string? +---@field directory_label string? +---@field empty_text string? +---@field selected_index number? +---@field id string? +---@field parser Parser?
\ No newline at end of file diff --git a/mpv/scripts/file-browser/modules/defs/mp/defaults.lua b/mpv/scripts/file-browser/modules/defs/mp/defaults.lua new file mode 100644 index 0000000..5a86dce --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/mp/defaults.lua @@ -0,0 +1,148 @@ +---@meta mp + +---@class mp +local mp = {} + +---@class AsyncReturn + +---@class MPTimer +---@field stop fun(self: MPTimer) +---@field kill fun(self: MPTimer) +---@field resume fun(self: MPTimer) +---@field is_enabled fun(self: MPTimer): boolean +---@field timeout number +---@field oneshot boolean + +---@class OSDOverlay +---@field data string +---@field res_x number +---@field res_y number +---@field z number +---@field update fun(self:OSDOverlay) +---@field remove fun(self: OSDOverlay) + +---@class MPVSubprocessResult +---@field status number +---@field stdout string +---@field stderr string +---@field error_string ''|'killed'|'init' +---@field killed_by_us boolean + +---@param key string +---@param name_or_fn string|function +---@param fn? async fun() +---@param flags? KeybindFlags +function mp.add_key_binding(key, name_or_fn, fn, flags) end + +---@param key string +---@param name_or_fn string|function +---@param fn? async fun() +---@param flags? KeybindFlags +function mp.add_forced_key_binding(key, name_or_fn, fn, flags) end + +---@param seconds number +---@param fn function +---@param disabled? boolean +---@return MPTimer +function mp.add_timeout(seconds, fn, disabled) end + +---@param format 'ass-events' +---@return OSDOverlay +function mp.create_osd_overlay(format) end + +---@param ... string +function mp.commandv(...) end + +---@generic T +---@param t table +---@param def? T +---@return unknown|T result +---@return string? error +---@overload fun(t: table): (unknown|nil, string?) +function mp.command_native(t, def) end + +---@nodiscard +---@param t table +---@param cb fun(success: boolean, result: unknown, error: string?) +---@return AsyncReturn +function mp.command_native_async(t, cb) end + +---@param t AsyncReturn +function mp.abort_async_command(t) end + +---@generic T +---@param name string +---@param def? T +---@return string|T +---@overload fun(name: string): string|nil +function mp.get_property(name, def) end + +---@generic T +---@param name string +---@param def? T +---@return boolean|T +---@overload fun(name: string): boolean|nil +function mp.get_property_bool(name, def) end + +---@generic T +---@param name string +---@param def? T +---@return number|T +---@overload fun(name: string): number|nil +function mp.get_property_number(name, def) end + +---@generic T +---@param name string +---@param def? T +---@return unknown|T +---@overload fun(name: string): unknown|nil +function mp.get_property_native(name, def) end + +---@return string|nil +function mp.get_script_directory() end + +---@return string +function mp.get_script_name() end + +---@param name string +---@param type 'native'|'bool'|'string'|'number' +---@param fn fun(name: string, v: unknown) +function mp.observe_property(name, type, fn) end + +---@param name string +---@param fn function +---@return boolean +function mp.register_event(name, fn) end + +---@param name string +---@param fn fun(...: string) +function mp.register_script_message(name, fn) end + +---@param name string +function mp.remove_key_binding(name) end + +---@param name string +---@param value string +---@return true? success # nil if error +---@return string? err +function mp.set_property(name, value) end + +---@param name string +---@param value boolean +---@return true? success # nil if error +---@return string? err +function mp.set_property_bool(name, value) end + +---@param name string +---@param value number +---@return true? success # nil if error +---@return string? err +function mp.set_property_number(name, value) end + +---@param name string +---@param value any +---@return true? success # nil if error +---@return string? err +function mp.set_property_native(name, value) end + +return mp
\ No newline at end of file diff --git a/mpv/scripts/file-browser/modules/defs/mp/input.lua b/mpv/scripts/file-browser/modules/defs/mp/input.lua new file mode 100644 index 0000000..aab300c --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/mp/input.lua @@ -0,0 +1,21 @@ +---@meta mp.input + +---@class mp.input +local input = {} + +---@class InputGetOpts +---@field prompt string? +---@field default_text string? +---@field id string? +---@field submit (fun(text: string))? +---@field opened (fun())? +---@field edited (fun(text: string))? +---@field complete (fun(text_before_cursor: string): string[], number)? +---@field closed (fun(text: string))? + +---@param options InputGetOpts +function input.get(options) end + +function input.terminate() end + +return input
\ No newline at end of file diff --git a/mpv/scripts/file-browser/modules/defs/mp/msg.lua b/mpv/scripts/file-browser/modules/defs/mp/msg.lua new file mode 100644 index 0000000..e260ec1 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/mp/msg.lua @@ -0,0 +1,32 @@ +---@meta mp.msg + +---@class mp.msg +local msg = {} + +---@param level 'fatal'|'error'|'warn'|'info'|'v'|'debug'|'trace' +---@param ... any +function msg.log(level, ...) end + +---@param ... any +function msg.fatal(...) end + +---@param ... any +function msg.error(...) end + +---@param ... any +function msg.warn(...) end + +---@param ... any +function msg.info(...) end + +---@param ... any +function msg.verbose(...) end + +---@param ... any +function msg.debug(...) end + +---@param ... any +function msg.trace(...) end + + +return msg
\ No newline at end of file diff --git a/mpv/scripts/file-browser/modules/defs/mp/options.lua b/mpv/scripts/file-browser/modules/defs/mp/options.lua new file mode 100644 index 0000000..0feff23 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/mp/options.lua @@ -0,0 +1,11 @@ +---@meta mp.options + +---@class mp.options +local options = {} + +---@param t table<string,string|number|boolean> +---@param identifier? string +---@param on_update? fun(list: table<string,true|nil>) +function options.read_options(t, identifier, on_update) end + +return options diff --git a/mpv/scripts/file-browser/modules/defs/mp/utils.lua b/mpv/scripts/file-browser/modules/defs/mp/utils.lua new file mode 100644 index 0000000..59eae32 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/mp/utils.lua @@ -0,0 +1,43 @@ +---@meta mp.utils + +---@class mp.utils +local utils = {} + +---@param v string|boolean|number|table|nil +---@return string? json # nil on error +---@return string? err # error +function utils.format_json(v) end + +---@param p1 string +---@param p2 string +---@return string +function utils.join_path(p1, p2) end + +---@param str string +---@param trail? boolean +---@return (table|unknown[])? t +---@return string? err # error +---@return string trail # trailing characters +function utils.parse_json(str, trail) end + +---@param path string +---@param filter ('files'|'dirs'|'normal'|'all')? +---@return string[]? # nil on error +---@return string? err # error +function utils.readdir(path, filter) end + +---@deprecated +---@param name string +---@param value string +function utils.shared_script_property_set(name, value) end + +---@param path string +---@return string directory +---@return string filename +function utils.split_path(path) end + +---@param v any +---@return string +function utils.to_string(v) end + +return utils diff --git a/mpv/scripts/file-browser/modules/defs/parser.lua b/mpv/scripts/file-browser/modules/defs/parser.lua new file mode 100644 index 0000000..d196bf2 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/parser.lua @@ -0,0 +1,41 @@ +---@meta _ + +---A ParserConfig object returned by addons +---@class (partial) ParserConfig: ParserAPI +---@field priority number? +---@field api_version string The minimum API version the string requires. +---@field version string? The minimum API version the string requires. @deprecated. +--- +---@field can_parse (async fun(self: Parser, directory: string, parse_state: ParseState): boolean)? +---@field parse (async fun(self: Parser, directory: string, parse_state: ParseState): List?, Opts?)? +---@field setup fun(self: Parser)? +--- +---@field name string? +---@field keybind_name string? +---@field keybinds KeybindList? + + +---The parser object used by file-browser once the parsers have been loaded and initialised. +---@class Parser: ParserAPI, ParserConfig +---@field name string +---@field priority number +---@field api_version string +---@field can_parse async fun(self: Parser, directory: string, parse_state: ParseState): boolean +---@field parse async fun(self: Parser, directory: string, parse_state: ParseState): List?, Opts? + + +---@alias ParseStateSource 'browser'|'loadlist'|'script-message'|'addon'|string +---@alias ParseProperties table<string,any> + +---The Parse State object passed to the can_parse and parse methods +---@class ParseStateFields +---@field source ParseStateSource +---@field directory string +---@field already_deferred boolean? +---@field properties ParseProperties + +---@class ParseState: ParseStateFields, ParseStateAPI + +---@class ParseStateTemplate +---@field source ParseStateSource? +---@field properties ParseProperties? diff --git a/mpv/scripts/file-browser/modules/defs/state.lua b/mpv/scripts/file-browser/modules/defs/state.lua new file mode 100644 index 0000000..403c310 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/state.lua @@ -0,0 +1,21 @@ +---@meta _ + +---@class Set<T>: {[T]: boolean} + +---@class (exact) State +---@field list List +---@field selected number +---@field hidden boolean +---@field flag_update boolean +---@field keybinds KeybindTupleStrict[]? +--- +---@field parser Parser? +---@field directory string? +---@field directory_label string? +---@field prev_directory string +---@field empty_text string +---@field co thread? +--- +---@field multiselect_start number? +---@field initial_selection Set<number>? +---@field selection Set<number>?
\ No newline at end of file diff --git a/mpv/scripts/file-browser/modules/defs/user-input.lua b/mpv/scripts/file-browser/modules/defs/user-input.lua new file mode 100644 index 0000000..a046095 --- /dev/null +++ b/mpv/scripts/file-browser/modules/defs/user-input.lua @@ -0,0 +1,28 @@ +---@meta user-input-module + +---@class user_input_module +local user_input_module = {} + +---@class UserInputOpts +---@field id string? +---@field source string? +---@field request_text string? +---@field default_input string? +---@field cursor_pos number? +---@field queueable boolean? +---@field replace boolean? + +---@class UserInputRequest +---@field callback function? +---@field passthrough_args any[]? +---@field pending boolean +---@field cancel fun(self: UserInputRequest) +---@field update fun(self: UserInputRequest, opts: UserInputOpts) + +---@param fn function +---@param opts UserInputOpts +---@param ... any passthrough arguments +---@return UserInputRequest +function user_input_module.get_user_input(fn, opts, ...) end + +return user_input_module |
