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
|
---@class FrecencyAsyncFinder
|
||||||
---@field closed boolean
|
---@field closed boolean
|
||||||
---@field entries FrecencyEntry[]
|
---@field entries FrecencyEntry[]
|
||||||
---@field rx FrecencyRx
|
---@field rx PlenaryAsyncControlChannelRx
|
||||||
---@overload fun(_: string, process_result: (fun(entry: FrecencyEntry): nil), process_complete: fun(): nil): nil
|
---@overload fun(_: string, process_result: (fun(entry: FrecencyEntry): nil), process_complete: fun(): nil): nil
|
||||||
local AsyncFinder = {}
|
local AsyncFinder = {}
|
||||||
|
|
||||||
---@class FrecencyRx
|
|
||||||
---@field recv fun(): FrecencyEntry?
|
|
||||||
|
|
||||||
---@class FrecencyTx
|
|
||||||
---@field send fun(entry: FrecencyEntry?): nil
|
|
||||||
|
|
||||||
---@param fs FrecencyFS
|
---@param fs FrecencyFS
|
||||||
---@param path string
|
---@param path string
|
||||||
---@param entry_maker fun(file: FrecencyFile): FrecencyEntry
|
---@param entry_maker fun(file: FrecencyFile): FrecencyEntry
|
||||||
@ -33,7 +27,6 @@ AsyncFinder.new = function(fs, path, entry_maker, initial_results)
|
|||||||
entry.index = i
|
entry.index = i
|
||||||
table.insert(self.entries, entry)
|
table.insert(self.entries, entry)
|
||||||
end
|
end
|
||||||
---@type FrecencyTx, FrecencyRx
|
|
||||||
local tx, rx = async.control.channel.mpsc()
|
local tx, rx = async.control.channel.mpsc()
|
||||||
self.rx = rx
|
self.rx = rx
|
||||||
async.run(function()
|
async.run(function()
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
---@diagnostic disable: unused-local
|
||||||
-- NOTE: types below are borrowed from sqlite.lua
|
-- NOTE: types below are borrowed from sqlite.lua
|
||||||
|
|
||||||
---@class sqlite_db @Main sqlite.lua object.
|
---@class sqlite_db @Main sqlite.lua object.
|
||||||
@ -65,6 +66,41 @@
|
|||||||
|
|
||||||
---@alias scan_dir fun(path: string, opts: PlenaryScanDirOptions): string[]
|
---@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
|
-- NOTE: types are for telescope.nvim
|
||||||
|
|
||||||
---@alias TelescopeEntryDisplayer fun(items: string[]): table
|
---@alias TelescopeEntryDisplayer fun(items: string[]): table
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user