diff options
author | Eike Ziller <git@eikeziller.de> | 2017-04-29 16:17:11 +0200 |
---|---|---|
committer | Eike Ziller <git@eikeziller.de> | 2017-10-01 20:11:08 +0200 |
commit | 5798e33d742c0f413d2d865fdb75739b4374ce98 (patch) | |
tree | e7d36edf5de22ab74ed4b56e2e2b22be24f50ef6 /plugins/haskell/haskellhighlighter.h | |
parent | 2f69373309cfe88084c5777baeff6bb46eecd071 (diff) |
Add highlighter
See lexical structure of Haskell
https://www.haskell.org/onlinereport/haskell2010/haskellch2.html
Diffstat (limited to 'plugins/haskell/haskellhighlighter.h')
-rw-r--r-- | plugins/haskell/haskellhighlighter.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/plugins/haskell/haskellhighlighter.h b/plugins/haskell/haskellhighlighter.h new file mode 100644 index 0000000..6213333 --- /dev/null +++ b/plugins/haskell/haskellhighlighter.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include <texteditor/syntaxhighlighter.h> + +#include <QHash> +#include <QTextFormat> + +namespace Haskell { +namespace Internal { + +class Token; + +class HaskellHighlighter : public TextEditor::SyntaxHighlighter +{ + Q_OBJECT + +public: + HaskellHighlighter(); + +protected: + void highlightBlock(const QString &text) override; + +private: + void setFontSettings(const TextEditor::FontSettings &fontSettings) override; + void updateFormats(const TextEditor::FontSettings &fontSettings); + void setTokenFormat(const Token &token, TextEditor::TextStyle style); + void setTokenFormatWithSpaces(const QString &text, const Token &token, + TextEditor::TextStyle style); + QTextCharFormat m_toplevelDeclFormat; +}; + +} // Internal +} // Haskell |