diff options
| author | Maxime Coste <mawww@kakoune.org> | 2017-11-22 15:57:59 +0800 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2017-11-22 15:57:59 +0800 |
| commit | 179a1f6aa1eca17c12bdbc06eb63a7b76a6f304d (patch) | |
| tree | 7549875ca34493fde54aa4a1caaf84b42c944a9c /src | |
| parent | 77b367b3e0e9ce9ea364e56b4c58a1adf23336f5 (diff) | |
dynregex: slight code refactor, moving a helper function to lambda
Diffstat (limited to 'src')
| -rw-r--r-- | src/highlighters.cc | 18 |
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) |
