regex option highlighter use runtime window rather than creation time one
This commit is contained in:
parent
02312fe5ff
commit
dd6462ed57
|
@ -161,7 +161,7 @@ public:
|
||||||
|
|
||||||
void operator()(const Window& window, DisplayBuffer& display_buffer)
|
void operator()(const Window& window, DisplayBuffer& display_buffer)
|
||||||
{
|
{
|
||||||
Regex regex = m_regex_getter();
|
Regex regex = m_regex_getter(window);
|
||||||
if (regex != m_last_regex)
|
if (regex != m_last_regex)
|
||||||
{
|
{
|
||||||
m_last_regex = regex;
|
m_last_regex = regex;
|
||||||
|
@ -186,7 +186,7 @@ HighlighterAndId highlight_search_factory(HighlighterParameters params, const Wi
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ColorSpec colors { { 0, &get_color(params[0]) } };
|
ColorSpec colors { { 0, &get_color(params[0]) } };
|
||||||
auto get_regex = []{
|
auto get_regex = [](const Window&){
|
||||||
auto s = RegisterManager::instance()['/'].values(Context{});
|
auto s = RegisterManager::instance()['/'].values(Context{});
|
||||||
return s.empty() ? Regex{} : Regex{s[0].begin(), s[0].end()};
|
return s.empty() ? Regex{} : Regex{s[0].begin(), s[0].end()};
|
||||||
};
|
};
|
||||||
|
@ -198,18 +198,17 @@ HighlighterAndId highlight_search_factory(HighlighterParameters params, const Wi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HighlighterAndId highlight_regex_option_factory(HighlighterParameters params, const Window& window)
|
HighlighterAndId highlight_regex_option_factory(HighlighterParameters params, const Window&)
|
||||||
{
|
{
|
||||||
if (params.size() != 2)
|
if (params.size() != 2)
|
||||||
throw runtime_error("wrong parameter count");
|
throw runtime_error("wrong parameter count");
|
||||||
|
|
||||||
ColorSpec colors { { 0, &get_color(params[1]) } };
|
ColorSpec colors { { 0, &get_color(params[1]) } };
|
||||||
String option_name = params[0];
|
String option_name = params[0];
|
||||||
const OptionManager& options = window.options();
|
|
||||||
// verify option type now
|
// verify option type now
|
||||||
options[option_name].get<Regex>();
|
GlobalOptions::instance()[option_name].get<Regex>();
|
||||||
|
|
||||||
auto get_regex = [option_name, &options]{ return options[option_name].get<Regex>(); };
|
auto get_regex = [option_name](const Window& window){ return window.options()[option_name].get<Regex>(); };
|
||||||
return {"hloption_" + option_name, DynamicRegexHighlighter<decltype(get_regex)>{colors, get_regex}};
|
return {"hloption_" + option_name, DynamicRegexHighlighter<decltype(get_regex)>{colors, get_regex}};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user