+ "description": "Enable preselect feature of LSP, works when suggest.noselect is false.",
+ "default": true
+ },
+ "suggest.floatConfig": {
+ "type": "object",
+ "description": "Configure style of popup menu and documentation window of completion.",
+ "allOf": [{ "$ref": "#/definitions/float" }],
+ "additionalProperties": false,
+ "properties": {
+ "border": {},
+ "rounded": {},
+ "highlight": {},
+ "borderhighlight": {},
+ "maxWidth": {},
+ "winblend": {},
+ "shadow": {}
+ }
+ },
+ "suggest.labelMaxLength": {
+ "type": "number",
+ "description": "Max length of abbr that shown as label of complete item.",
+ "default": 200
+ },
+ "suggest.detailMaxLength": {
+ "type": "number",
+ "description": "Max length of detail that should be shown in popup menu.",
+ "default": 100
+ },
+ "suggest.detailField": {
+ "type": "string",
+ "default": "preview",
+ "description": "Where to show the detail text of CompleteItem from LS.",
+ "enum": ["abbr", "preview"]
+ },
+ "suggest.autoTrigger": {
+ "type": "string",
+ "default": "always",
+ "description": "How should completion be triggered",
+ "enum": ["always", "trigger", "none"]
+ },
+ "suggest.languageSourcePriority": {
+ "type": "number",
+ "default": 99,
+ "description": "Priority of language sources."
+ },
+ "suggest.snippetIndicator": {
+ "type": "string",
+ "default": "~",
+ "description": "The character used in abbr of complete item to indicate the item could be expand as snippet."
+ },
+ "suggest.maxCompleteItemCount": {
+ "type": "number",
+ "default": 50,
+ "description": "Maximum number of complete items shown in vim"
+ },
+ "suggest.preferCompleteThanJumpPlaceholder": {
+ "type": "boolean",
+ "description": "Confirm completion instead of jump to next placeholder when completion is activated.",
+ "default": false
+ },
+ "suggest.fixInsertedWord": {
+ "type": "boolean",
+ "description": "Make inserted word replace word characters after cursor position.",
+ "default": true
+ },
+ "suggest.localityBonus": {
+ "type": "boolean",
+ "description": "Boost suggestions that appear closer to the cursor position.",
+ "default": true
+ },
+ "suggest.triggerAfterInsertEnter": {
+ "type": "boolean",
+ "description": "Trigger completion after InsertEnter, auto trigger should be 'always' to enable this option",
+ "default": false
+ },
+ "suggest.minTriggerInputLength": {
+ "type": "integer",
+ "default": 1,
+ "description": "Minimal input length for trigger completion, default 1"
+ },
+ "suggest.triggerCompletionWait": {
+ "type": "integer",
+ "default": 0,
+ "minimum": 0,
+ "maximum": 50,
+ "description": "Wait time between text change and completion start, cancel completion when text changed during wait."
+ },
+ "suggest.timeout": {
+ "type": "integer",
+ "default": 5000,
+ "minimum": 500,
+ "maximum": 15000,
+ "description": "Timeout for completion, in milliseconds."
+ },
+ "suggest.acceptSuggestionOnCommitCharacter": {
+ "type": "boolean",
+ "default": false,
+ "description": "Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character. Requires CompleteChanged event to work."
+ },
+ "suggest.lowPrioritySourceLimit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "description": "Max items count for source priority lower than 90."
+ },
+ "suggest.highPrioritySourceLimit": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 100,
+ "description": "Max items count for source priority bigger than or equal to 90."
+ },
+ "suggest.removeDuplicateItems": {
+ "type": "boolean",
+ "description": "Remove completion items with duplicated word for all sources, snippet items are excluded.",
+ "default": false
+ },
+ "suggest.defaultSortMethod": {
+ "type": "string",
+ "description": "Default sorting behavior for suggested completion items.",
+ "default": "length",
+ "enum": ["length", "alphabetical", "none"]
+ },
+ "suggest.snippetsSupport": {
+ "type": "boolean",
+ "description": "Set to false to disable snippets support of completion.",
+ "default": true
+ },
+ "suggest.completionItemKindLabels": {
+ "type": "object",
+ "default": {},
+ "description": "Set custom labels to completion items' kinds.",
+ "description": "Update locationlist on diagnostics change, only works with locationlist opened by :CocDiagnostics command and first window of associated buffer.",
+ "default": true
+ },
+ "diagnostic.checkCurrentLine": {
+ "type": "boolean",
+ "description": "When enabled, show all diagnostics of current line if there are none at the current position.",
+ "default": false
+ },
+ "diagnostic.messageTarget": {
+ "type": "string",
+ "description": "Diagnostic message target.",
+ "default": "float",
+ "enum": ["echo", "float"]
+ },
+ "diagnostic.messageDelay": {
+ "type": "number",
+ "description": "How long to wait (in milliseconds) before displaying the diagnostic message with echo or float",
+ "default": 200
+ },
+ "diagnostic.refreshOnInsertMode": {
+ "type": "boolean",
+ "description": "Enable diagnostic refresh on insert mode, default false.",
+ "default": false
+ },
+ "diagnostic.displayByAle": {
+ "type": "boolean",
+ "description": "Use Ale for display diagnostics in vim, will disable coc for display diagnostics, restart required on change.",
+ "default": false
+ },
+ "diagnostic.virtualText": {
+ "type": "boolean",
+ "description": "Use NeoVim virtual text to display diagnostics",
+ "default": false
+ },
+ "diagnostic.virtualTextLevel": {
+ "type": ["string", "null"],
+ "description": "Filter diagnostic message in virtual text by level",
+ "description": "Window column number to align virtual text",
+ "default": null
+ },
+ "diagnostic.virtualTextCurrentLineOnly": {
+ "type": "boolean",
+ "description": "Only show virtualText diagnostic on current cursor line",
+ "default": true
+ },
+ "diagnostic.virtualTextPrefix": {
+ "type": "string",
+ "description": "The prefix added virtual text diagnostics",
+ "default": " "
+ },
+ "diagnostic.virtualTextLines": {
+ "type": "number",
+ "description": "The number of non empty lines from a diagnostic to display",
+ "default": 3
+ },
+ "diagnostic.virtualTextLineSeparator": {
+ "type": "string",
+ "description": "The text that will mark a line end from the diagnostic message",
+ "default": " \\ "
+ },
+ "diagnostic.enableSign": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable signs for diagnostics."
+ },
+ "diagnostic.enableHighlightLineNumber": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable highlighting line numbers for diagnostics, only works with neovim and diagnostic.enableSign is true."
+ },
+ "diagnostic.enableMessage": {
+ "type": "string",
+ "default": "always",
+ "description": "When to enable show messages of diagnostics.",
+ "enum": ["always", "jump", "never"]
+ },
+ "diagnostic.signPriority": {
+ "type": "number",
+ "description": "Priority of diagnostic signs, default to 10",
+ "default": 10
+ },
+ "diagnostic.errorSign": {
+ "type": "string",
+ "description": "Text of error sign",
+ "default": ">>"
+ },
+ "diagnostic.warningSign": {
+ "type": "string",
+ "description": "Text of warning sign",
+ "default": "⚠"
+ },
+ "diagnostic.infoSign": {
+ "type": "string",
+ "description": "Text of info sign",
+ "default": ">>"
+ },
+ "diagnostic.hintSign": {
+ "type": "string",
+ "description": "Text of hint sign",
+ "default": ">>"
+ },
+ "diagnostic.floatConfig": {
+ "type": "object",
+ "description": "Configure float window style of diagnostic message.",
+ "allOf": [{ "$ref": "#/definitions/float" }],
+ "additionalProperties": false,
+ "properties": {
+ "border": {},
+ "rounded": {},
+ "highlight": {},
+ "borderhighlight": {},
+ "title": {},
+ "close": {},
+ "maxHeight": {},
+ "maxWidth": {},
+ "winblend": {},
+ "focusable": {},
+ "shadow": {}
+ }
+ },
+ "diagnostic.filetypeMap": {
+ "type": "object",
+ "description": "A map between buffer filetype and the filetype assigned to diagnostics. To syntax highlight diagnostics with their parent buffer type use `\"default\": \"bufferType\"`",
+ "default": {}
+ },
+ "diagnostic.format": {
+ "type": "string",
+ "description": "Define the diagnostic format that shown in float window or echoed, available parts: source, code, severity, message",
+ "description": "Root patterns to resolve workspaceFolder from parent folders of opened files, resolved from up to down.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "coc.preferences.watchmanPath": {
+ "type": "string",
+ "description": "executable path for https://facebook.github.io/watchman/, detected from $PATH by default",
+ "default": null
+ },
+ "coc.preferences.jumpCommand": {
+ "anyOf": [
+ {
+ "type": "string",
+ "enum": [
+ "edit",
+ "split",
+ "vsplit",
+ "tabe",
+ "drop",
+ "tab drop",
+ "pedit"
+ ]
+ },
+ { "type": "string", "minimum": 1 }
+ ],
+ "description": "Command used for location jump, like goto definition, goto references etc. Can be also a custom command that gives file as an argument.",
+ "default": "edit"
+ },
+ "coc.preferences.messageLevel": {
+ "type": "string",
+ "description": "Message level for filter echoed messages, could be 'more', 'warning' and 'error'",
+ "default": "more",
+ "enum": ["more", "warning", "error"]
+ },
+ "coc.preferences.bracketEnterImprove": {
+ "type": "boolean",
+ "description": "Improve enter inside bracket `<> {} [] ()` by add new empty line below and place cursor to it. Works with `coc#on_enter()`",
+ "default": true
+ },
+ "coc.preferences.formatOnType": {
+ "type": "boolean",
+ "description": "Set to true to enable formatting on typing",
+ "default": false
+ },
+ "coc.preferences.formatOnTypeFiletypes": {
+ "type": "array",
+ "default": [],
+ "description": "Filetypes that should run format on typing. Only take effect when `coc.preferences.formatOnType` set `true`",
+ "items": {
+ "type": "string"
+ }
+ },
+ "coc.preferences.floatActions": {
+ "type": "boolean",
+ "description": "Set to false to disable float/popup support for actions menu, won't work on vim without float or popup window support.",
+ "default": true
+ },
+ "coc.preferences.promptInput": {
+ "type": "boolean",
+ "description": "Use prompt buffer in float window for user input.",
+ "default": true
+ },
+ "coc.preferences.enableMarkdown": {
+ "type": "boolean",
+ "description": "Tell the language server that markdown text format is supported, note that markdown text may not rendered as expected.",
+ call add(i < nr ? x : i == nr ? y : z, (i > nr + 3 ? '%<' : '') . '%' . i . 'T%{lightline#onetab(' . i . ',' . (i == nr) . ')}' . (i == cnt ? '%T' : ''))
+ endfor
+ let abbr = '...'
+ let n = min([max([&columns / 40, 2]), 8])
+ if len(x) > n && len(z) > n
+ let x = extend(add(x[:n/2-1], abbr), x[-(n+1)/2:])
+ let z = extend(add(z[:(n+1)/2-1], abbr), z[-n/2:])
+ elseif len(x) + len(z) > 2 * n
+ if len(x) > n
+ let x = extend(add(x[:(2*n-len(z))/2-1], abbr), x[-(2*n-len(z)+1)/2:])
+ elseif len(z) > n
+ let z = extend(add(z[:(2*n-len(x)+1)/2-1], abbr), z[-(2*n-len(x))/2:])
+ endif
+ endif
+ return [x, y, z]
+endfunction
+
+function! lightline#onetab(n, active) abort
+ let _ = []
+ for name in a:active ? s:lightline.tab.active : s:lightline.tab.inactive
+ if has_key(s:lightline.tab_component_function, name)
+ for _ in map(filter(readfile(rgbfile), 'v:val !~# "^!"'), 'matchlist(v:val, "^\\s*\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(\\d\\+\\)\\s\\+\\(.*\\)")[1:4]')