Windows call the WinSetOption hook when an option changes
This commit is contained in:
parent
a943e08dc7
commit
f7ee2801e9
|
@ -21,9 +21,18 @@ Window::Window(Buffer& buffer)
|
||||||
HighlighterRegistry& registry = HighlighterRegistry::instance();
|
HighlighterRegistry& registry = HighlighterRegistry::instance();
|
||||||
|
|
||||||
m_hook_manager.run_hook("WinCreate", buffer.name(), Context(*this));
|
m_hook_manager.run_hook("WinCreate", buffer.name(), Context(*this));
|
||||||
|
m_option_manager.register_watcher(*this);
|
||||||
|
|
||||||
registry.add_highlighter_to_group(*this, m_highlighters, "expand_tabs", HighlighterParameters());
|
registry.add_highlighter_to_group(*this, m_highlighters, "expand_tabs", HighlighterParameters());
|
||||||
registry.add_highlighter_to_group(*this, m_highlighters, "highlight_selections", HighlighterParameters());
|
registry.add_highlighter_to_group(*this, m_highlighters, "highlight_selections", HighlighterParameters());
|
||||||
|
|
||||||
|
for (auto& option : m_option_manager.flatten_options())
|
||||||
|
on_option_changed(option.first, option.second);
|
||||||
|
}
|
||||||
|
|
||||||
|
Window::~Window()
|
||||||
|
{
|
||||||
|
m_option_manager.unregister_watcher(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
BufferIterator Window::iterator_at(const DisplayCoord& window_pos) const
|
BufferIterator Window::iterator_at(const DisplayCoord& window_pos) const
|
||||||
|
@ -126,4 +135,11 @@ void Window::on_incremental_insertion_end()
|
||||||
pop_selections();
|
pop_selections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::on_option_changed(const String& name, const Option& option)
|
||||||
|
{
|
||||||
|
String desc = name + "=" + option.as_string();
|
||||||
|
m_hook_manager.run_hook("WinSetOption", desc, Context(*this));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,11 @@ class HighlighterGroup;
|
||||||
// to the editing ones already provided by the Editor class.
|
// to the editing ones already provided by the Editor class.
|
||||||
// Display can be customized through the use of highlighters handled by
|
// Display can be customized through the use of highlighters handled by
|
||||||
// the window's HighlighterGroup
|
// the window's HighlighterGroup
|
||||||
class Window : public Editor
|
class Window : public Editor, public OptionManagerWatcher
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
~Window();
|
||||||
|
|
||||||
const BufferCoord& position() const { return m_position; }
|
const BufferCoord& position() const { return m_position; }
|
||||||
|
|
||||||
BufferIterator iterator_at(const DisplayCoord& window_pos) const;
|
BufferIterator iterator_at(const DisplayCoord& window_pos) const;
|
||||||
|
@ -49,6 +51,7 @@ private:
|
||||||
Window(const Window&) = delete;
|
Window(const Window&) = delete;
|
||||||
|
|
||||||
void on_incremental_insertion_end();
|
void on_incremental_insertion_end();
|
||||||
|
void on_option_changed(const String& name, const Option& option);
|
||||||
|
|
||||||
void scroll_to_keep_cursor_visible_ifn();
|
void scroll_to_keep_cursor_visible_ifn();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user