summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2017-11-22 15:57:59 +0800
committerMaxime Coste <mawww@kakoune.org>2017-11-22 15:57:59 +0800
commit179a1f6aa1eca17c12bdbc06eb63a7b76a6f304d (patch)
tree7549875ca34493fde54aa4a1caaf84b42c944a9c /src
parent77b367b3e0e9ce9ea364e56b4c58a1adf23336f5 (diff)
dynregex: slight code refactor, moving a helper function to lambda
Diffstat (limited to 'src')
-rw-r--r--src/highlighters.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/highlighters.cc b/src/highlighters.cc
index c5e31788..c18f988e 100644
--- a/src/highlighters.cc
+++ b/src/highlighters.cc
@@ -484,14 +484,6 @@ private:
RegexHighlighter m_highlighter;
};
-template<typename RegexGetter, typename FaceGetter>
-std::unique_ptr<DynamicRegexHighlighter<RegexGetter, FaceGetter>>
-make_dynamic_regex_highlighter(RegexGetter regex_getter, FaceGetter face_getter)
-{
- return std::make_unique<DynamicRegexHighlighter<RegexGetter, FaceGetter>>(
- std::move(regex_getter), std::move(face_getter));
-}
-
HighlighterAndId create_dynamic_regex_highlighter(HighlighterParameters params)
{
if (params.size() < 2)
@@ -509,6 +501,12 @@ HighlighterAndId create_dynamic_regex_highlighter(HighlighterParameters params)
faces.emplace_back(capture, String{colon+1, spec.end()});
}
+
+ auto make_hl = [](auto& regex_getter, auto& face_getter) {
+ return std::make_unique<DynamicRegexHighlighter<std::decay_t<decltype(regex_getter)>,
+ std::decay_t<decltype(face_getter)>>>(
+ std::move(regex_getter), std::move(face_getter));
+ };
auto get_face = [faces](const Context& context){ return faces;; };
String expr = params[0];
@@ -520,7 +518,7 @@ HighlighterAndId create_dynamic_regex_highlighter(HighlighterParameters params)
auto get_regex = [option_name](const Context& context) {
return context.options()[option_name].get<Regex>();
};
- return {format("dynregex_{}", expr), make_dynamic_regex_highlighter(get_regex, get_face)};
+ return {format("dynregex_{}", expr), make_hl(get_regex, get_face)};
}
auto get_regex = [expr](const Context& context){
@@ -535,7 +533,7 @@ HighlighterAndId create_dynamic_regex_highlighter(HighlighterParameters params)
return Regex{};
}
};
- return {format("dynregex_{}", expr), make_dynamic_regex_highlighter(get_regex, get_face)};
+ return {format("dynregex_{}", expr), make_hl(get_regex, get_face)};
}
HighlighterAndId create_line_highlighter(HighlighterParameters params)