diff --git a/lua/cmp_cmdline/init.lua b/lua/cmp_cmdline/init.lua index 53e7593..d69d860 100644 --- a/lua/cmp_cmdline/init.lua +++ b/lua/cmp_cmdline/init.lua @@ -133,15 +133,18 @@ local definitions = { --- create items. local items = {} local escaped = cmdline:gsub([[\\]], [[\\\\]]); - for _, word_or_item in ipairs(vim.fn.getcompletion(escaped, 'cmdline')) do - local word = type(word_or_item) == 'string' and word_or_item or word_or_item.word - local item = { label = word } - table.insert(items, item) - if is_option_name_completion and is_boolean_option(word) then - table.insert(items, vim.tbl_deep_extend('force', {}, item, { - label = 'no' .. word, - filterText = word, - })) + local ok, completions = pcall(vim.fn.getcompletion, escaped, 'cmdline') + if ok then + for _, word_or_item in ipairs(completions) do + local word = type(word_or_item) == 'string' and word_or_item or word_or_item.word + local item = { label = word } + table.insert(items, item) + if is_option_name_completion and is_boolean_option(word) then + table.insert(items, vim.tbl_deep_extend('force', {}, item, { + label = 'no' .. word, + filterText = word, + })) + end end end