/
types.ts
33 lines (27 loc) · 930 Bytes
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import type { AutoCompleteFunction, SuggestResult } from '@unocss/core'
import type LRU from 'lru-cache'
export type AutocompleteTemplatePart = AutocompleteTemplateStatic | AutocompleteTemplateGroup | AutocompleteTemplateTheme
export interface AutocompleteTemplateStatic {
type: 'static'
value: string
}
export interface AutocompleteTemplateGroup {
type: 'group'
values: string[]
}
export interface AutocompleteTemplateTheme {
type: 'theme'
objects: Record<string, unknown>[]
}
export interface ParsedAutocompleteTemplate {
parts: AutocompleteTemplatePart[]
suggest(input: string): string[] | undefined
}
export interface UnocssAutocomplete {
suggest: (input: string) => Promise<string[]>
suggestInFile: (content: string, cursor: number) => Promise<SuggestResult>
templates: (string | AutoCompleteFunction)[]
cache: LRU<string, string[]>
reset: () => void
enumerate: () => Promise<Set<string>>
}