summaryrefslogtreecommitdiff
path: root/src/insert_completer.cc
diff options
context:
space:
mode:
authorDelapouite <delapouite@gmail.com>2017-10-02 18:45:11 +0200
committerDelapouite <delapouite@gmail.com>2017-10-02 18:45:11 +0200
commit6bfc99bf08e3165c65ba6b2ad9e90dd708e27a36 (patch)
tree308b594fc389e3d07124201bc61cf7eb775f8e28 /src/insert_completer.cc
parent2f251c9861dfdc4c07a60295b6cdfe093dbd7b59 (diff)
Add 'line' in completers option as a way to force explicit <c-x>f
Diffstat (limited to 'src/insert_completer.cc')
-rw-r--r--src/insert_completer.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/insert_completer.cc b/src/insert_completer.cc
index 087dd00a..61670c5c 100644
--- a/src/insert_completer.cc
+++ b/src/insert_completer.cc
@@ -32,6 +32,8 @@ String option_to_string(const InsertCompleterDesc& opt)
return "filename";
case InsertCompleterDesc::Option:
return "option=" + (opt.param ? *opt.param : "");
+ case InsertCompleterDesc::Line:
+ return "line";
}
kak_assert(false);
return "";
@@ -61,6 +63,12 @@ void option_from_string(StringView str, InsertCompleterDesc& opt)
opt.param = Optional<String>{};
return;
}
+ else if (str == "line")
+ {
+ opt.mode = InsertCompleterDesc::Line;
+ opt.param = Optional<String>{};
+ return;
+ }
throw runtime_error(format("invalid completer description: '{}'", str));
}
@@ -467,6 +475,9 @@ bool InsertCompleter::setup_ifn()
*completer.param == "all" and
try_complete(complete_word<true>))
return true;
+ if (completer.mode == InsertCompleterDesc::Line and
+ try_complete(complete_line))
+ return true;
}
return false;
}