mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 20:28:11 +00:00
LibGUI+HackStudio: Move syntax highlighting from HackStudio to LibGUI
This patch introduces the GUI::SyntaxHighlighter class, which can be attached to a GUI::TextEditor to provide syntax highlighting. The C++ syntax highlighting from HackStudio becomes a new class called GUI::CppSyntaxHighlighter. This will make it possible to get C++ syntax highlighting in any app that uses a GUI::TextEditor. :^) Sidenote: It does feel a bit weird having a C++ lexer in a GUI toolkit library, and we'll probably end up moving this out to a separate place as this functionality grows larger.
This commit is contained in:
parent
6cf49c23d4
commit
bb8e65be41
13 changed files with 277 additions and 170 deletions
|
@ -42,6 +42,7 @@ class Action;
|
|||
class Menu;
|
||||
class Painter;
|
||||
class ScrollBar;
|
||||
class SyntaxHighlighter;
|
||||
|
||||
class TextEditor
|
||||
: public ScrollableWidget
|
||||
|
@ -133,6 +134,8 @@ public:
|
|||
void set_cursor(size_t line, size_t column);
|
||||
void set_cursor(const TextPosition&);
|
||||
|
||||
void set_syntax_highlighter(OwnPtr<SyntaxHighlighter>);
|
||||
|
||||
protected:
|
||||
explicit TextEditor(Widget* parent);
|
||||
explicit TextEditor(Type, Widget* parent);
|
||||
|
@ -248,6 +251,8 @@ private:
|
|||
};
|
||||
|
||||
NonnullOwnPtrVector<LineVisualData> m_line_visual_data;
|
||||
|
||||
OwnPtr<SyntaxHighlighter> m_highlighter;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue