From 31290c8527a66b4ca0f2138123cf63cf9f6842c5 Mon Sep 17 00:00:00 2001 From: Kyle Lanmon Date: Wed, 26 Oct 2022 10:01:13 -0500 Subject: [PATCH] LibSyntax: Teach each highlighter about it's comment syntax --- Userland/Libraries/LibCpp/SemanticSyntaxHighlighter.h | 3 +++ Userland/Libraries/LibCpp/SyntaxHighlighter.h | 2 ++ Userland/Libraries/LibGUI/GML/SyntaxHighlighter.h | 2 ++ Userland/Libraries/LibGUI/GitCommitSyntaxHighlighter.h | 2 ++ Userland/Libraries/LibGUI/INISyntaxHighlighter.h | 2 ++ Userland/Libraries/LibJS/SyntaxHighlighter.h | 2 ++ Userland/Libraries/LibSQL/AST/SyntaxHighlighter.h | 3 +++ Userland/Libraries/LibSyntax/Highlighter.h | 2 ++ .../Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.h | 2 ++ .../LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.h | 2 ++ Userland/Shell/SyntaxHighlighter.h | 2 ++ 11 files changed, 24 insertions(+) diff --git a/Userland/Libraries/LibCpp/SemanticSyntaxHighlighter.h b/Userland/Libraries/LibCpp/SemanticSyntaxHighlighter.h index 32c6ce652a..ae81171309 100644 --- a/Userland/Libraries/LibCpp/SemanticSyntaxHighlighter.h +++ b/Userland/Libraries/LibCpp/SemanticSyntaxHighlighter.h @@ -25,6 +25,9 @@ public: virtual bool is_navigatable(u64 token) const override; virtual Syntax::Language language() const override { return Syntax::Language::Cpp; } + virtual Optional comment_prefix() const override { return "//"sv; } + virtual Optional comment_suffix() const override { return {}; } + virtual void rehighlight(Palette const&) override; void update_tokens_info(Vector); diff --git a/Userland/Libraries/LibCpp/SyntaxHighlighter.h b/Userland/Libraries/LibCpp/SyntaxHighlighter.h index f0ea0a3a04..f737b04289 100644 --- a/Userland/Libraries/LibCpp/SyntaxHighlighter.h +++ b/Userland/Libraries/LibCpp/SyntaxHighlighter.h @@ -23,6 +23,8 @@ public: virtual bool is_navigatable(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::Cpp; } + virtual Optional comment_prefix() const override { return "//"sv; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibGUI/GML/SyntaxHighlighter.h b/Userland/Libraries/LibGUI/GML/SyntaxHighlighter.h index 7a660a73c4..29bce30f1d 100644 --- a/Userland/Libraries/LibGUI/GML/SyntaxHighlighter.h +++ b/Userland/Libraries/LibGUI/GML/SyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_identifier(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::GML; } + virtual Optional comment_prefix() const override { return {}; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibGUI/GitCommitSyntaxHighlighter.h b/Userland/Libraries/LibGUI/GitCommitSyntaxHighlighter.h index 1153e8b9a9..ca356896d5 100644 --- a/Userland/Libraries/LibGUI/GitCommitSyntaxHighlighter.h +++ b/Userland/Libraries/LibGUI/GitCommitSyntaxHighlighter.h @@ -17,6 +17,8 @@ public: virtual ~GitCommitSyntaxHighlighter() override = default; virtual Syntax::Language language() const override { return Syntax::Language::GitCommit; } + virtual Optional comment_prefix() const override { return {}; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibGUI/INISyntaxHighlighter.h b/Userland/Libraries/LibGUI/INISyntaxHighlighter.h index bb56a79071..f3462f8168 100644 --- a/Userland/Libraries/LibGUI/INISyntaxHighlighter.h +++ b/Userland/Libraries/LibGUI/INISyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_identifier(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::INI; } + virtual Optional comment_prefix() const override { return ";"sv; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibJS/SyntaxHighlighter.h b/Userland/Libraries/LibJS/SyntaxHighlighter.h index e1667cac70..5a4a2b2d5f 100644 --- a/Userland/Libraries/LibJS/SyntaxHighlighter.h +++ b/Userland/Libraries/LibJS/SyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_navigatable(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::JavaScript; } + virtual Optional comment_prefix() const override { return "//"sv; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibSQL/AST/SyntaxHighlighter.h b/Userland/Libraries/LibSQL/AST/SyntaxHighlighter.h index 7e6120b948..0452489f57 100644 --- a/Userland/Libraries/LibSQL/AST/SyntaxHighlighter.h +++ b/Userland/Libraries/LibSQL/AST/SyntaxHighlighter.h @@ -19,6 +19,9 @@ public: virtual bool is_identifier(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::SQL; } + virtual Optional comment_prefix() const override { return "--"sv; } + virtual Optional comment_suffix() const override { return {}; } + virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibSyntax/Highlighter.h b/Userland/Libraries/LibSyntax/Highlighter.h index e6a2cc487c..7c34ff5dd2 100644 --- a/Userland/Libraries/LibSyntax/Highlighter.h +++ b/Userland/Libraries/LibSyntax/Highlighter.h @@ -41,6 +41,8 @@ public: virtual Language language() const = 0; StringView language_string(Language) const; + virtual Optional comment_prefix() const = 0; + virtual Optional comment_suffix() const = 0; virtual void rehighlight(Palette const&) = 0; virtual void highlight_matching_token_pair(); diff --git a/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.h b/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.h index 0f7669f730..040067f639 100644 --- a/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.h +++ b/Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_navigatable(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::CSS; } + virtual Optional comment_prefix() const override { return "/*"sv; } + virtual Optional comment_suffix() const override { return "*/"sv; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.h b/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.h index 79f38c3d98..e8725a57b3 100644 --- a/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.h +++ b/Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_navigatable(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::HTML; } + virtual Optional comment_prefix() const override { return ""sv; } virtual void rehighlight(Palette const&) override; protected: diff --git a/Userland/Shell/SyntaxHighlighter.h b/Userland/Shell/SyntaxHighlighter.h index 5f142c0b4e..e1cf775667 100644 --- a/Userland/Shell/SyntaxHighlighter.h +++ b/Userland/Shell/SyntaxHighlighter.h @@ -19,6 +19,8 @@ public: virtual bool is_navigatable(u64) const override; virtual Syntax::Language language() const override { return Syntax::Language::Shell; } + virtual Optional comment_prefix() const override { return "#"sv; } + virtual Optional comment_suffix() const override { return {}; } virtual void rehighlight(Palette const&) override; protected: