QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgscodeeditorjs.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgscodeeditorjs.cpp - A Javascript editor based on QScintilla
3 --------------------------------------
4 Date : June 2020
5 Copyright : (C) 2020 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#include "qgscodeeditorjs.h"
17
18#include <QWidget>
19#include <QString>
20#include <QFont>
21#include <Qsci/qscilexerjavascript.h>
22
23
25 : QgsCodeEditor( parent,
26 QString(),
27 false,
28 false,
29 QgsCodeEditor::Flag::CodeFolding )
30{
31 if ( !parent )
32 {
33 setTitle( tr( "JavaScript Editor" ) );
34 }
36}
37
39{
41}
42
44{
45 QsciLexerJavaScript *lexer = new QsciLexerJavaScript( this );
46
47 QFont font = lexerFont();
48 lexer->setDefaultFont( font );
49 lexer->setFont( font, -1 );
50
51 font.setItalic( true );
52 lexer->setFont( font, QsciLexerJavaScript::Comment );
53 lexer->setFont( font, QsciLexerJavaScript::CommentLine );
54
58
59 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Class ), QsciLexerJavaScript::GlobalClass );
60 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Keyword ), QsciLexerJavaScript::Keyword );
61 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Operator ), QsciLexerJavaScript::Operator );
62 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Number ), QsciLexerJavaScript::Number );
63 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Comment ), QsciLexerJavaScript::Comment );
64 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::CommentLine ), QsciLexerJavaScript::CommentLine );
65 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::DoubleQuote ), QsciLexerJavaScript::DoubleQuotedString );
66 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::SingleQuote ), QsciLexerJavaScript::SingleQuotedString );
67 lexer->setColor( lexerColor( QgsCodeEditorColorScheme::ColorRole::Identifier ), QsciLexerJavaScript::Identifier );
68
69 setLexer( lexer );
72}
ScriptLanguage
Scripting languages.
Definition: qgis.h:3718
@ JavaScript
JavaScript.
@ DoubleQuote
Double quote color.
@ CommentLine
Line comment color.
@ SingleQuote
Single quote color.
QgsCodeEditorJavascript(QWidget *parent=nullptr)
Constructor for QgsCodeEditorJavascript.
Qgis::ScriptLanguage language() const override
Returns the associated scripting language.
void initializeLexer() override
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
A text editor based on QScintilla2.
Definition: qgscodeeditor.h:93
void runPostLexerConfigurationTasks()
Performs tasks which must be run after a lexer has been set for the widget.
void setTitle(const QString &title)
Set the widget title.
Flag
Flags controlling behavior of code editor.
void setLineNumbersVisible(bool visible)
Sets whether line numbers should be visible in the editor.
QFont lexerFont() const
Returns the font to use in the lexer.
QColor lexerColor(QgsCodeEditorColorScheme::ColorRole role) const
Returns the color to use in the lexer for the specified role.