mirror of
https://github.com/kristoferssolo/telescope-frecency.nvim.git
synced 2025-10-21 20:10:38 +00:00
chore: add types for plenary.async (#115)
This commit is contained in:
parent
c87b76f6ef
commit
54de6e45b9
@ -1,18 +1,12 @@
|
||||
local async = require "plenary.async"
|
||||
local async = require "plenary.async" --[[@as PlenaryAsync]]
|
||||
|
||||
---@class FrecencyAsyncFinder
|
||||
---@field closed boolean
|
||||
---@field entries FrecencyEntry[]
|
||||
---@field rx FrecencyRx
|
||||
---@field rx PlenaryAsyncControlChannelRx
|
||||
---@overload fun(_: string, process_result: (fun(entry: FrecencyEntry): nil), process_complete: fun(): nil): nil
|
||||
local AsyncFinder = {}
|
||||
|
||||
---@class FrecencyRx
|
||||
---@field recv fun(): FrecencyEntry?
|
||||
|
||||
---@class FrecencyTx
|
||||
---@field send fun(entry: FrecencyEntry?): nil
|
||||
|
||||
---@param fs FrecencyFS
|
||||
---@param path string
|
||||
---@param entry_maker fun(file: FrecencyFile): FrecencyEntry
|
||||
@ -33,7 +27,6 @@ AsyncFinder.new = function(fs, path, entry_maker, initial_results)
|
||||
entry.index = i
|
||||
table.insert(self.entries, entry)
|
||||
end
|
||||
---@type FrecencyTx, FrecencyRx
|
||||
local tx, rx = async.control.channel.mpsc()
|
||||
self.rx = rx
|
||||
async.run(function()
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
---@diagnostic disable: unused-local
|
||||
-- NOTE: types below are borrowed from sqlite.lua
|
||||
|
||||
---@class sqlite_db @Main sqlite.lua object.
|
||||
@ -65,6 +66,41 @@
|
||||
|
||||
---@alias scan_dir fun(path: string, opts: PlenaryScanDirOptions): string[]
|
||||
|
||||
---@class PlenaryAsync
|
||||
---@field control PlenaryAsyncControl
|
||||
---@field util PlenaryAsyncUtil
|
||||
local PlenaryAsync = {}
|
||||
|
||||
---@async
|
||||
---@param f fun(): nil
|
||||
---@return nil
|
||||
function PlenaryAsync.run(f) end
|
||||
|
||||
---@class PlenaryAsyncControl
|
||||
---@field channel PlenaryAsyncControlChannel
|
||||
|
||||
---@class PlenaryAsyncControlChannel
|
||||
---@field mpsc fun(): PlenaryAsyncControlChannelTx, PlenaryAsyncControlChannelRx
|
||||
|
||||
---@class PlenaryAsyncControlChannelTx
|
||||
---@field send fun(entry: FrecencyEntry?): nil
|
||||
local PlenaryAsyncControlChannelTx = {}
|
||||
|
||||
---@class PlenaryAsyncControlChannelRx
|
||||
local PlenaryAsyncControlChannelRx = {}
|
||||
|
||||
---@async
|
||||
---@return FrecencyEntry?
|
||||
function PlenaryAsyncControlChannelRx.recv() end
|
||||
|
||||
---@class PlenaryAsyncUtil
|
||||
local PlenaryAsyncUtil = {}
|
||||
|
||||
---@async
|
||||
---@param ms integer
|
||||
---@return nil
|
||||
function PlenaryAsyncUtil.sleep(ms) end
|
||||
|
||||
-- NOTE: types are for telescope.nvim
|
||||
|
||||
---@alias TelescopeEntryDisplayer fun(items: string[]): table
|
||||
|
||||
Loading…
Reference in New Issue
Block a user