summaryrefslogtreecommitdiff
path: root/lua/blink/cmp/types.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/blink/cmp/types.lua')
-rw-r--r--lua/blink/cmp/types.lua74
1 files changed, 74 insertions, 0 deletions
diff --git a/lua/blink/cmp/types.lua b/lua/blink/cmp/types.lua
new file mode 100644
index 0000000..3904f9d
--- /dev/null
+++ b/lua/blink/cmp/types.lua
@@ -0,0 +1,74 @@
+--- @alias blink.cmp.Mode 'cmdline' | 'default'
+
+--- @class blink.cmp.CompletionItem : lsp.CompletionItem
+--- @field documentation? string | { kind: lsp.MarkupKind, value: string, render?: blink.cmp.SourceRenderDocumentation }
+--- @field score_offset? number
+--- @field source_id string
+--- @field source_name string
+--- @field cursor_column number
+--- @field client_id? number
+
+--- @class blink.cmp.SourceRenderDocumentationOpts
+--- @field item blink.cmp.CompletionItem
+--- @field window blink.cmp.Window
+--- @field default_implementation fun(opts: blink.cmp.RenderDetailAndDocumentationOptsPartial)
+
+--- @alias blink.cmp.SourceRenderDocumentation fun(opts: blink.cmp.SourceRenderDocumentationOpts)
+
+return {
+ -- some plugins mutate the vim.lsp.protocol.CompletionItemKind table
+ -- so we use our own copy
+ CompletionItemKind = {
+ 'Text',
+ 'Method',
+ 'Function',
+ 'Constructor',
+ 'Field',
+ 'Variable',
+ 'Class',
+ 'Interface',
+ 'Module',
+ 'Property',
+ 'Unit',
+ 'Value',
+ 'Enum',
+ 'Keyword',
+ 'Snippet',
+ 'Color',
+ 'File',
+ 'Reference',
+ 'Folder',
+ 'EnumMember',
+ 'Constant',
+ 'Struct',
+ 'Event',
+ 'Operator',
+ 'TypeParameter',
+
+ Text = 1,
+ Method = 2,
+ Function = 3,
+ Constructor = 4,
+ Field = 5,
+ Variable = 6,
+ Class = 7,
+ Interface = 8,
+ Module = 9,
+ Property = 10,
+ Unit = 11,
+ Value = 12,
+ Enum = 13,
+ Keyword = 14,
+ Snippet = 15,
+ Color = 16,
+ File = 17,
+ Reference = 18,
+ Folder = 19,
+ EnumMember = 20,
+ Constant = 21,
+ Struct = 22,
+ Event = 23,
+ Operator = 24,
+ TypeParameter = 25,
+ },
+}