QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
codeeditors
qgscodeeditorr.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgscodeeditorr.cpp - A R stats editor based on QScintilla
3
--------------------------------------
4
Date : October 2022
5
Copyright : (C) 2022 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 "
qgscodeeditorr.h
"
17
18
#include "
qgsapplication.h
"
19
20
#include <QFont>
21
#include <QString>
22
#include <QWidget>
23
#include <Qsci/qscilexerjson.h>
24
25
#include "moc_qgscodeeditorr.cpp"
26
27
QgsCodeEditorR::QgsCodeEditorR
( QWidget *parent,
Mode
mode
)
28
:
QgsCodeEditor
( parent, QString(), false, false,
QgsCodeEditor
::
Flag
::CodeFolding,
mode
)
29
{
30
if
( !parent )
31
{
32
setTitle
( tr(
"R Editor"
) );
33
}
34
QgsCodeEditorR::initializeLexer
();
35
}
36
37
Qgis::ScriptLanguage
QgsCodeEditorR::language
()
const
38
{
39
return
Qgis::ScriptLanguage::R
;
40
}
41
42
void
QgsCodeEditorR::initializeLexer
()
43
{
44
QgsQsciLexerR *lexer =
new
QgsQsciLexerR(
this
);
45
46
QFont font =
lexerFont
();
47
lexer->setDefaultFont( font );
48
lexer->setFont( font, -1 );
49
50
font.setItalic(
true
);
51
lexer->setFont( font, QgsQsciLexerR::Comment );
52
53
lexer->setDefaultColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Default
) );
54
lexer->setDefaultPaper(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Background
) );
55
lexer->setPaper(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Background
), -1 );
56
57
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Default
), QgsQsciLexerR::Default );
58
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::CommentLine
), QgsQsciLexerR::Comment );
59
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Keyword
), QgsQsciLexerR::Kword );
60
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Method
), QgsQsciLexerR::BaseKword );
61
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Class
), QgsQsciLexerR::OtherKword );
62
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Number
), QgsQsciLexerR::Number );
63
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::DoubleQuote
), QgsQsciLexerR::String );
64
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::DoubleQuote
), QgsQsciLexerR::String2 );
65
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Operator
), QgsQsciLexerR::Operator );
66
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Identifier
), QgsQsciLexerR::Identifier );
67
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Tag
), QgsQsciLexerR::Infix );
68
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::UnknownTag
), QgsQsciLexerR::InfixEOL );
69
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Tag
), QgsQsciLexerR::Backticks );
70
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::SingleQuote
), QgsQsciLexerR::RawString );
71
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::SingleQuote
), QgsQsciLexerR::RawString2 );
72
lexer->setColor(
lexerColor
(
QgsCodeEditorColorScheme::ColorRole::Decoration
), QgsQsciLexerR::EscapeSequence );
73
74
setLexer( lexer );
75
setLineNumbersVisible
(
true
);
76
runPostLexerConfigurationTasks
();
77
}
78
80
QgsQsciLexerR::QgsQsciLexerR( QObject *parent )
81
: QsciLexer( parent )
82
{}
83
84
const
char
*QgsQsciLexerR::language()
const
85
{
86
return
"r"
;
87
}
88
89
const
char
*QgsQsciLexerR::lexer()
const
90
{
91
return
nullptr
;
92
}
93
94
int
QgsQsciLexerR::lexerId()
const
95
{
96
return
QsciScintillaBase::SCLEX_R;
97
}
98
99
QString QgsQsciLexerR::description(
int
style )
const
100
{
101
switch
( style )
102
{
103
case
Default:
104
return
tr(
"Default"
);
105
case
Comment:
106
return
tr(
"Comment"
);
107
case
Kword:
108
return
tr(
"Keyword"
);
109
case
BaseKword:
110
return
tr(
"Base Keyword"
);
111
case
OtherKword:
112
return
tr(
"Other Keyword"
);
113
case
Number:
114
return
tr(
"Number"
);
115
case
String:
116
return
tr(
"String"
);
117
case
String2:
118
return
tr(
"String 2"
);
119
case
Operator:
120
return
tr(
"Operator"
);
121
case
Identifier:
122
return
tr(
"Identifier"
);
123
case
Infix:
124
return
tr(
"Infix"
);
125
case
InfixEOL:
126
return
tr(
"Infix EOL"
);
127
case
Backticks:
128
return
tr(
"Backticks"
);
129
case
RawString:
130
return
tr(
"Raw String"
);
131
case
RawString2:
132
return
tr(
"Raw String 2"
);
133
case
EscapeSequence:
134
return
tr(
"Escape Sequence"
);
135
}
136
return
QString();
137
}
138
139
const
char
*QgsQsciLexerR::keywords(
int
set )
const
140
{
141
switch
( set )
142
{
143
case
1:
144
return
"if else repeat while function for in next break TRUE FALSE NULL NA Inf NaN"
;
145
146
case
2:
147
return
"abbreviate abline abs acf acos acosh addmargins aggregate agrep alarm alias alist all anova any aov aperm append apply approx "
148
"approxfun apropos ar args arima array arrows asin asinh assign assocplot atan atanh attach attr attributes autoload autoloader "
149
"ave axis backsolve barplot basename beta bindtextdomain binomial biplot bitmap bmp body box boxplot bquote break browser builtins "
150
"bxp by bzfile c call cancor capabilities casefold cat category cbind ccf ceiling character charmatch chartr chol choose chull "
151
"citation class close cm cmdscale codes coef coefficients col colnames colors colorspaces colours comment complex confint "
//#spellok
152
"conflicts contour contrasts contributors convolve cophenetic coplot cor cos cosh cov covratio cpgram crossprod cummax cummin "
153
"cumprod cumsum curve cut cutree cycle data dataentry date dbeta dbinom dcauchy dchisq de debug debugger decompose delay deltat "
154
"demo dendrapply density deparse deriv det detach determinant deviance dexp df dfbeta dfbetas dffits dgamma dgeom dget dhyper "
155
"diag diff diffinv difftime digamma dim dimnames dir dirname dist dlnorm dlogis dmultinom dnbinom dnorm dotchart double dpois "
156
"dput drop dsignrank dt dump dunif duplicated dweibull dwilcox eapply ecdf edit effects eigen emacs embed end environment eval "
157
"evalq example exists exp expression factanal factor factorial family fft fifo file filter find fitted fivenum fix floor flush "
158
"for force formals format formula forwardsolve fourfoldplot frame frequency ftable function gamma gaussian gc gcinfo gctorture "
159
"get getenv geterrmessage gettext gettextf getwd gl glm globalenv gray grep grey grid gsub gzcon gzfile hat hatvalues hcl "
160
"hclust head heatmap help hist history hsv httpclient iconv iconvlist identical identify if ifelse image influence inherits "
161
"integer integrate interaction interactive intersect invisible isoreg jitter jpeg julian kappa kernapply kernel kmeans knots "
162
"kronecker ksmooth labels lag lapply layout lbeta lchoose lcm legend length letters levels lfactorial lgamma library licence "
163
"license line lines list lm load loadhistory loadings local locator loess log logb logical loglin lowess ls lsfit machine mad "
164
"mahalanobis makepredictcall manova mapply match matlines matplot matpoints matrix max mean median medpolish menu merge "
165
"message methods mget min missing mode monthplot months mosaicplot mtext mvfft names napredict naprint naresid nargs nchar "
166
"ncol next nextn ngettext nlevels nlm nls noquote nrow numeric objects offset open optim optimise optimize options order "
167
"ordered outer pacf page pairlist pairs palette par parse paste pbeta pbinom pbirthday pcauchy pchisq pdf pentagamma person "
168
"persp pexp pf pgamma pgeom phyper pi pico pictex pie piechart pipe plclust plnorm plogis plot pmatch pmax pmin pnbinom png "
169
"pnorm points poisson poly polygon polym polyroot postscript power ppoints ppois ppr prcomp predict preplot pretty princomp "
170
"print prmatrix prod profile profiler proj promax prompt provide psigamma psignrank pt ptukey punif pweibull pwilcox q qbeta "
171
"qbinom qbirthday qcauchy qchisq qexp qf qgamma qgeom qhyper qlnorm qlogis qnbinom qnorm qpois qqline qqnorm qqplot qr "
172
"qsignrank qt qtukey quantile quarters quasi quasibinomial quasipoisson quit qunif quote qweibull qwilcox rainbow range "
173
"rank raw rbeta rbind rbinom rcauchy rchisq readline real recover rect reformulate regexpr relevel remove reorder rep repeat "
174
"replace replicate replications require reshape resid residuals restart return rev rexp rf rgamma rgb rgeom rhyper rle rlnorm "
175
"rlogis rm rmultinom rnbinom rnorm round row rownames rowsum rpois rsignrank rstandard rstudent rt rug runif runmed rweibull "
176
"rwilcox sample sapply save savehistory scale scan screen screeplot sd search searchpaths seek segments seq sequence serialize "
177
"setdiff setequal setwd shell sign signif sin single sinh sink smooth solve sort source spectrum spline splinefun split sprintf "
178
"sqrt stack stars start stderr stdin stdout stem step stepfun stl stop stopifnot str strftime strheight stripchart strptime "
179
"strsplit strtrim structure strwidth strwrap sub subset substitute substr substring sum summary sunflowerplot supsmu svd sweep "
180
"switch symbols symnum system t table tabulate tail tan tanh tapply tempdir tempfile termplot terms tetragamma text time title "
181
"toeplitz tolower topenv toupper trace traceback transform trigamma trunc truncate try ts tsdiag tsp typeof unclass undebug "
182
"union unique uniroot unix unlink unlist unname unserialize unsplit unstack untrace unz update upgrade url var varimax vcov "
183
"vector version vi vignette warning warnings weekdays weights which while window windows with write wsbrowser xedit xemacs "
184
"xfig xinch xor xtabs xyinch yinch zapsmall"
;
185
186
case
3:
187
return
"acme aids aircondit amis aml banking barchart barley beaver bigcity boot brambles breslow bs bwplot calcium cane capability "
188
"cav censboot channing city claridge cloth cloud coal condense contourplot control corr darwin densityplot dogs dotplot ducks "
189
"empinf envelope environmental ethanol fir frets gpar grav gravity grob hirose histogram islay knn larrows levelplot llines "
190
"logit lpoints lsegments lset ltext lvqinit lvqtest manaus melanoma melanoma motor multiedit neuro nitrofen nodal ns nuclear "
191
"oneway parallel paulsen poisons polar qq qqmath remission rfs saddle salinity shingle simplex singer somgrid splom stripplot "
192
"survival tau tmd tsboot tuna unit urine viewport wireframe wool xyplot"
;
193
}
194
195
return
nullptr
;
196
}
197
Qgis::ScriptLanguage
ScriptLanguage
Scripting languages.
Definition
qgis.h:4978
Qgis::ScriptLanguage::R
@ R
R Stats.
Definition
qgis.h:4985
QgsCodeEditorColorScheme::ColorRole::Keyword
@ Keyword
Keyword color.
Definition
qgscodeeditorcolorscheme.h:40
QgsCodeEditorColorScheme::ColorRole::Decoration
@ Decoration
Decoration color.
Definition
qgscodeeditorcolorscheme.h:43
QgsCodeEditorColorScheme::ColorRole::Identifier
@ Identifier
Identifier color.
Definition
qgscodeeditorcolorscheme.h:57
QgsCodeEditorColorScheme::ColorRole::DoubleQuote
@ DoubleQuote
Double quote color.
Definition
qgscodeeditorcolorscheme.h:52
QgsCodeEditorColorScheme::ColorRole::Method
@ Method
Method color.
Definition
qgscodeeditorcolorscheme.h:42
QgsCodeEditorColorScheme::ColorRole::CommentLine
@ CommentLine
Line comment color.
Definition
qgscodeeditorcolorscheme.h:46
QgsCodeEditorColorScheme::ColorRole::Default
@ Default
Default text color.
Definition
qgscodeeditorcolorscheme.h:39
QgsCodeEditorColorScheme::ColorRole::UnknownTag
@ UnknownTag
Unknown tag.
Definition
qgscodeeditorcolorscheme.h:60
QgsCodeEditorColorScheme::ColorRole::Class
@ Class
Class color.
Definition
qgscodeeditorcolorscheme.h:41
QgsCodeEditorColorScheme::ColorRole::Background
@ Background
Background color.
Definition
qgscodeeditorcolorscheme.h:48
QgsCodeEditorColorScheme::ColorRole::SingleQuote
@ SingleQuote
Single quote color.
Definition
qgscodeeditorcolorscheme.h:51
QgsCodeEditorColorScheme::ColorRole::Number
@ Number
Number color.
Definition
qgscodeeditorcolorscheme.h:44
QgsCodeEditorColorScheme::ColorRole::Tag
@ Tag
Tag color.
Definition
qgscodeeditorcolorscheme.h:59
QgsCodeEditorColorScheme::ColorRole::Operator
@ Operator
Operator color.
Definition
qgscodeeditorcolorscheme.h:55
QgsCodeEditorR::QgsCodeEditorR
QgsCodeEditorR(QWidget *parent=nullptr, QgsCodeEditor::Mode mode=QgsCodeEditor::Mode::ScriptEditor)
Constructor for QgsCodeEditorR.
Definition
qgscodeeditorr.cpp:27
QgsCodeEditorR::initializeLexer
void initializeLexer() override
Called when the dialect specific code lexer needs to be initialized (or reinitialized).
Definition
qgscodeeditorr.cpp:42
QgsCodeEditorR::language
Qgis::ScriptLanguage language() const override
Returns the associated scripting language.
Definition
qgscodeeditorr.cpp:37
QgsCodeEditor::mode
QgsCodeEditor::Mode mode() const
Returns the code editor mode.
Definition
qgscodeeditor.h:344
QgsCodeEditor::Mode
Mode
Code editor modes.
Definition
qgscodeeditor.h:123
QgsCodeEditor::runPostLexerConfigurationTasks
void runPostLexerConfigurationTasks()
Performs tasks which must be run after a lexer has been set for the widget.
Definition
qgscodeeditor.cpp:468
QgsCodeEditor::setTitle
void setTitle(const QString &title)
Set the widget title.
Definition
qgscodeeditor.cpp:552
QgsCodeEditor::QgsCodeEditor
QgsCodeEditor(QWidget *parent=nullptr, const QString &title=QString(), bool folding=false, bool margin=false, QgsCodeEditor::Flags flags=QgsCodeEditor::Flags(), QgsCodeEditor::Mode mode=QgsCodeEditor::Mode::ScriptEditor)
Construct a new code editor.
Definition
qgscodeeditor.cpp:96
QgsCodeEditor::Flag
Flag
Flags controlling behavior of code editor.
Definition
qgscodeeditor.h:151
QgsCodeEditor::setLineNumbersVisible
void setLineNumbersVisible(bool visible)
Sets whether line numbers should be visible in the editor.
Definition
qgscodeeditor.cpp:618
QgsCodeEditor::lexerFont
QFont lexerFont() const
Returns the font to use in the lexer.
Definition
qgscodeeditor.cpp:435
QgsCodeEditor::lexerColor
QColor lexerColor(QgsCodeEditorColorScheme::ColorRole role) const
Returns the color to use in the lexer for the specified role.
Definition
qgscodeeditor.cpp:419
qgsapplication.h
qgscodeeditorr.h
Generated on
for QGIS API Documentation by
1.17.0