Просмотр исходного кода

LibSyntax: Teach each highlighter about it's comment syntax

Kyle Lanmon 2 лет назад
Родитель
Сommit
31290c8527

+ 3 - 0
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<StringView> comment_prefix() const override { return "//"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
+
     virtual void rehighlight(Palette const&) override;
 
     void update_tokens_info(Vector<CodeComprehension::TokenInfo>);

+ 2 - 0
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<StringView> comment_prefix() const override { return "//"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return {}; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return {}; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return ";"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return "//"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 3 - 0
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<StringView> comment_prefix() const override { return "--"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
+
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
Userland/Libraries/LibSyntax/Highlighter.h

@@ -41,6 +41,8 @@ public:
 
     virtual Language language() const = 0;
     StringView language_string(Language) const;
+    virtual Optional<StringView> comment_prefix() const = 0;
+    virtual Optional<StringView> comment_suffix() const = 0;
     virtual void rehighlight(Palette const&) = 0;
     virtual void highlight_matching_token_pair();
 

+ 2 - 0
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<StringView> comment_prefix() const override { return "/*"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return "*/"sv; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return "<!--"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return "-->"sv; }
     virtual void rehighlight(Palette const&) override;
 
 protected:

+ 2 - 0
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<StringView> comment_prefix() const override { return "#"sv; }
+    virtual Optional<StringView> comment_suffix() const override { return {}; }
     virtual void rehighlight(Palette const&) override;
 
 protected: