Remove complete_prefix option and behaviour
Now that we use subsequence based completion almost everywhere, completing the common prefix does not make sense anymore.
This commit is contained in:
parent
7202ff373e
commit
52525a156f
|
@ -813,8 +813,6 @@ Some options are built in Kakoune, and can be used to control it's behaviour:
|
|||
writing a buffer, this is autodetected on load.
|
||||
* `BOM` _enum(none|utf8)_: define if the file should be written
|
||||
with an unicode byte order mark.
|
||||
* `complete_prefix` _bool_: when completing in command line, and multiple
|
||||
candidates exist, enable completion with common prefix.
|
||||
* `incsearch` _bool_: execute search as it is typed
|
||||
* `aligntab` _bool_: use tabs for alignment command
|
||||
* `autoinfo` _flags(command|onkey|normal)_: display automatic information
|
||||
|
|
|
@ -66,10 +66,6 @@ Builtin options
|
|||
*BOM* 'enum(none|utf8)'::
|
||||
define if the file should be written with an unicode byte order mark
|
||||
|
||||
*complete_prefix* 'bool'::
|
||||
when completing in command line, and multiple candidates exist,
|
||||
enable completion with common prefix
|
||||
|
||||
*incsearch* 'bool'::
|
||||
execute search as it is typed
|
||||
|
||||
|
|
|
@ -762,51 +762,16 @@ public:
|
|||
const bool reverse = (key == Key::BackTab);
|
||||
CandidateList& candidates = m_completions.candidates;
|
||||
// first try, we need to ask our completer for completions
|
||||
bool updated_completions = false;
|
||||
if (candidates.empty())
|
||||
{
|
||||
refresh_completions(CompletionFlags::None);
|
||||
|
||||
if (candidates.empty())
|
||||
return;
|
||||
updated_completions = true;
|
||||
}
|
||||
bool did_prefix = false;
|
||||
if (m_current_completion == -1 and
|
||||
context().options()["complete_prefix"].get<bool>())
|
||||
{
|
||||
const String& line = m_line_editor.line();
|
||||
CandidateList& candidates = m_completions.candidates;
|
||||
String prefix = common_prefix(candidates);
|
||||
if (m_completions.end - m_completions.start > prefix.length())
|
||||
prefix = line.substr(m_completions.start,
|
||||
m_completions.end - m_completions.start).str();
|
||||
if (candidates.empty())
|
||||
return;
|
||||
|
||||
if (not prefix.empty())
|
||||
{
|
||||
auto it = find(candidates, prefix);
|
||||
if (it == candidates.end())
|
||||
{
|
||||
m_current_completion = candidates.size();
|
||||
candidates.push_back(prefix);
|
||||
}
|
||||
else
|
||||
m_current_completion = it - candidates.begin();
|
||||
|
||||
CharCount start = line.char_count_to(m_completions.start);
|
||||
// When we just updated completions, select the common
|
||||
// prefix even if it was the currently entered text.
|
||||
did_prefix = updated_completions or
|
||||
prefix != line.substr(start, m_line_editor.cursor_pos() - start);
|
||||
}
|
||||
}
|
||||
if (not did_prefix)
|
||||
{
|
||||
if (not reverse and ++m_current_completion >= candidates.size())
|
||||
m_current_completion = 0;
|
||||
else if (reverse and --m_current_completion < 0)
|
||||
m_current_completion = candidates.size()-1;
|
||||
}
|
||||
if (not reverse and ++m_current_completion >= candidates.size())
|
||||
m_current_completion = 0;
|
||||
else if (reverse and --m_current_completion < 0)
|
||||
m_current_completion = candidates.size()-1;
|
||||
|
||||
const String& completion = candidates[m_current_completion];
|
||||
if (context().has_client())
|
||||
|
|
|
@ -206,9 +206,6 @@ void register_options()
|
|||
reg.declare_option("eolformat", "end of line format: crlf or lf", EolFormat::Lf);
|
||||
reg.declare_option("BOM", "insert a byte order mark when writing buffer (none or utf8)",
|
||||
ByteOrderMark::None);
|
||||
reg.declare_option("complete_prefix",
|
||||
"complete up to common prefix in tab completion",
|
||||
true);
|
||||
reg.declare_option("incsearch",
|
||||
"incrementaly apply search/select/split regex",
|
||||
true);
|
||||
|
|
Loading…
Reference in New Issue
Block a user