summaryrefslogtreecommitdiff
path: root/mpv/scripts/file-browser/modules/defs
diff options
context:
space:
mode:
authorryukamish <[email protected]>2026-04-11 16:06:45 +0530
committerryukamish <[email protected]>2026-04-11 16:06:45 +0530
commit607891801fbf2051a0c9062d15a445dd238c1e1b (patch)
tree33b8cfba2355b498addea05e385b06d46cced30f /mpv/scripts/file-browser/modules/defs
parent6fbde2906e3bb2d4d1df23f6374d8a6a0aef870f (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.lua3
-rw-r--r--mpv/scripts/file-browser/modules/defs/keybind.lua39
-rw-r--r--mpv/scripts/file-browser/modules/defs/list.lua25
-rw-r--r--mpv/scripts/file-browser/modules/defs/mp/defaults.lua148
-rw-r--r--mpv/scripts/file-browser/modules/defs/mp/input.lua21
-rw-r--r--mpv/scripts/file-browser/modules/defs/mp/msg.lua32
-rw-r--r--mpv/scripts/file-browser/modules/defs/mp/options.lua11
-rw-r--r--mpv/scripts/file-browser/modules/defs/mp/utils.lua43
-rw-r--r--mpv/scripts/file-browser/modules/defs/parser.lua41
-rw-r--r--mpv/scripts/file-browser/modules/defs/state.lua21
-rw-r--r--mpv/scripts/file-browser/modules/defs/user-input.lua28
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