mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-12 01:47:00 +02:00
This change ensures that users can use LibShell easily understand this library now, because we have an actual library directory. In addition to that, we move the test scripts to Tests/LibShell, to match the usual pattern of putting test-related files in the Tests/ directory.
32 lines
899 B
C++
32 lines
899 B
C++
/*
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibSyntax/Highlighter.h>
|
|
|
|
namespace Shell {
|
|
|
|
class SyntaxHighlighter : public Syntax::Highlighter {
|
|
public:
|
|
SyntaxHighlighter() = default;
|
|
virtual ~SyntaxHighlighter() override = default;
|
|
|
|
virtual bool is_identifier(u64) const override;
|
|
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:
|
|
virtual Vector<MatchingTokenPair> matching_token_pairs_impl() const override;
|
|
virtual bool token_types_equal(u64, u64) const override;
|
|
};
|
|
|
|
}
|