From 607891801fbf2051a0c9062d15a445dd238c1e1b Mon Sep 17 00:00:00 2001 From: ryukamish Date: Sat, 11 Apr 2026 16:06:45 +0530 Subject: add: mako and mpv configs --- .../file-browser/modules/apis/parse-state.lua | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 mpv/scripts/file-browser/modules/apis/parse-state.lua (limited to 'mpv/scripts/file-browser/modules/apis/parse-state.lua') diff --git a/mpv/scripts/file-browser/modules/apis/parse-state.lua b/mpv/scripts/file-browser/modules/apis/parse-state.lua new file mode 100644 index 0000000..6db5658 --- /dev/null +++ b/mpv/scripts/file-browser/modules/apis/parse-state.lua @@ -0,0 +1,34 @@ + +local msg = require 'mp.msg' + +local g = require 'modules.globals' + +---@class ParseStateAPI +local parse_state_API = {} + +---A wrapper around coroutine.yield that aborts the coroutine if +--the parse request was cancelled by the user. +--the coroutine is +---@async +---@param self ParseState +---@param ... any +---@return unknown ... +function parse_state_API:yield(...) + local co = coroutine.running() + local is_browser = co == g.state.co + + local result = table.pack(coroutine.yield(...)) + if is_browser and co ~= g.state.co then + msg.verbose("browser no longer waiting for list - aborting parse for", self.directory) + error(g.ABORT_ERROR) + end + return table.unpack(result, 1, result.n) +end + +---Checks if the current coroutine is the one handling the browser's request. +---@return boolean +function parse_state_API:is_coroutine_current() + return coroutine.running() == g.state.co +end + +return parse_state_API -- cgit v1.3