add a completers option for specifying which completer to use for BufferCompleter

This commit is contained in:
Maxime Coste 2013-05-03 18:38:12 +02:00
parent 39f9ca33c8
commit 42d7fcacd8
3 changed files with 7 additions and 2 deletions

View File

@ -664,9 +664,11 @@ private:
{ {
if (not m_completions.is_valid()) if (not m_completions.is_valid())
{ {
auto& completers = options()["completers"].get<std::vector<String>>();
BufferIterator cursor = m_context.editor().main_selection().last(); BufferIterator cursor = m_context.editor().main_selection().last();
m_completions = complete_opt(cursor, m_context.options()); if (contains(completers, "option"))
if (not m_completions.is_valid()) m_completions = complete_opt(cursor, m_context.options());
if (not m_completions.is_valid() and contains(completers, "word"))
m_completions = complete_word(cursor); m_completions = complete_word(cursor);
if (not m_completions.is_valid()) if (not m_completions.is_valid())
return false; return false;

View File

@ -119,6 +119,7 @@ GlobalOptions::GlobalOptions()
declare_option<String>("filetype", ""); declare_option<String>("filetype", "");
declare_option<std::vector<String>>("completions", {}); declare_option<std::vector<String>>("completions", {});
declare_option<std::vector<String>>("path", { "./", "/usr/include" }); declare_option<std::vector<String>>("path", { "./", "/usr/include" });
declare_option<std::vector<String>>("completers", {"option", "word"});
declare_option<bool>("insert_hide_sel", false); declare_option<bool>("insert_hide_sel", false);
} }

View File

@ -193,6 +193,8 @@ class OptionManagerWatcher_AutoRegister
public: public:
OptionManagerWatcher_AutoRegister(OptionManager& options) OptionManagerWatcher_AutoRegister(OptionManager& options)
: AutoRegister(options) {} : AutoRegister(options) {}
OptionManager& options() { return registry(); }
}; };