WSF
WsfStyler.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFSTYLER_HPP
13#define WSFSTYLER_HPP
14
15#include <unordered_map>
16
17#include <QColor>
18#include <QTextCharFormat>
19
20#include "EditorPrefObject.hpp"
21#include "TextStyler.hpp"
22#include "UtCallbackHolder.hpp"
23#include "UtEnumUtil.hpp"
24#include "ViExport.hpp"
25
26class WsfParseNode;
27class QPlainTextEdit;
28
29namespace wizard
30{
31class ParseResults;
32class TextSource;
33class WsfScriptInfo;
34
37{
38public:
39 static int rgb(int r, int g, int b) { return r | (g << 8) | (b << 16); }
40 static int rgb(const QColor& aColor) { return rgb(aColor.red(), aColor.green(), aColor.blue()); }
41 enum
42 {
59 };
60 enum
61 {
74 };
75
76 enum
77 {
81 };
82 enum
83 {
86 };
88 {
90 : mControl(nullptr)
91 , mResultsPtr(nullptr)
92 , mSourcePtr(nullptr)
93 , mStylerInterface(nullptr)
95 , mLastPosition(0)
96 , mShowNotifications(true)
97 , mShowScriptErrors(true)
98 , mStyleIfHidden(false)
100 {
101 }
102
103 void GetRangeToStyle(size_t& styleNeedStart, size_t& styleNeededEnd) const;
104
105 QPlainTextEdit* mControl;
111
116 };
117 WsfStyler();
118 void LoadSettings();
119 void UpdateStyle(const StyleRequest& aRequest);
120 void UpdateScriptStyle(const StyleRequest& aRequest);
121 void UpdateScriptStyle(const StyleRequest& aRequest, WsfScriptInfo* aScriptPtr);
122
123 std::vector<std::pair<int, int>> FoldDocument(ParseResults* aResultsPtr, TextSource* aSourcePtr);
124
125 static void ApplyEditorStyleSettings(QPlainTextEdit* aEditorPtr, int aFontSizeOverride = 0);
126
127protected:
129
130 std::unordered_map<const char*, TextType> mNodeTypeToTextType;
131 std::unordered_map<TextType, QTextCharFormat, ut::EnumHash<TextType>> mTextFormats;
132 QTextCharFormat mErrorUnderlineFmt;
133 QTextCharFormat mWarningUnderlineFmt;
134
135private:
136 void AddCommentsToFolding(std::vector<std::pair<int, int>>& aFoldRanges, ParseResults* aResultsPtr, TextSource* aSourcePtr);
137 bool IsOverlaping(std::vector<std::pair<int, int>>& aFoldRanges, size_t& aLineBlockStart, size_t& aLineBlockEnd);
138};
139} // namespace wizard
140#endif
#define VI_EXPORT
Definition ViExport.hpp:38
Definition WsfParseNode.hpp:61
Provides access to the results of parsing the WSF inputs.
Definition ParseResults.hpp:147
Definition TextSource.hpp:48
Definition TextStyler.hpp:21
Definition WsfScriptData.hpp:77
void LoadSettings()
Definition WsfStyler.cpp:549
TextType GetTextTypeFromNode(const WsfParseNode *aNodePtr)
Definition WsfStyler.cpp:295
std::unordered_map< TextType, QTextCharFormat, ut::EnumHash< TextType > > mTextFormats
Definition WsfStyler.hpp:131
QTextCharFormat mErrorUnderlineFmt
Definition WsfStyler.hpp:132
void UpdateStyle(const StyleRequest &aRequest)
Update the syntax highlighting for the text editor.
Definition WsfStyler.cpp:36
@ cREFERENCEERROR_MARKER
Definition WsfStyler.hpp:51
@ cFUEL_MARKER
Definition WsfStyler.hpp:49
@ cMOVER_MARKER
Definition WsfStyler.hpp:45
@ cDEBUG_BREAKPOINT_MARKER
Definition WsfStyler.hpp:55
@ cPLATFORM_MARKER
Definition WsfStyler.hpp:43
@ cSCRIPT_MARKER
Definition WsfStyler.hpp:53
@ cCURRENT_LINE_MARKER
Definition WsfStyler.hpp:54
@ cCOMM_MARKER
Definition WsfStyler.hpp:44
@ cWEAPON_MARKER
Definition WsfStyler.hpp:48
@ cPROCESSOR_MARKER
Definition WsfStyler.hpp:46
@ cDEBUG_CURRENT_LINE_MARKER
Definition WsfStyler.hpp:57
@ cSENSOR_MARKER
Definition WsfStyler.hpp:47
@ cDEBUG_BREAKPOINT_INACTIVE_MARKER
Definition WsfStyler.hpp:56
@ cPARSEERROR_MARKER
Definition WsfStyler.hpp:50
@ cDEBUG_BREAKPOINT_DISABLED_MARKER
Definition WsfStyler.hpp:58
@ cREFERENCEWARNING_MARKER
Definition WsfStyler.hpp:52
static void ApplyEditorStyleSettings(QPlainTextEdit *aEditorPtr, int aFontSizeOverride=0)
Definition WsfStyler.cpp:367
QTextCharFormat mWarningUnderlineFmt
Definition WsfStyler.hpp:133
std::vector< std::pair< int, int > > FoldDocument(ParseResults *aResultsPtr, TextSource *aSourcePtr)
Definition WsfStyler.cpp:397
@ cERROR_NOTIFICATION_ID
Definition WsfStyler.hpp:79
@ cERROR_INDICATOR_ID
Definition WsfStyler.hpp:78
@ cHIGHLIGHT_NOTIFICATION_ID
Definition WsfStyler.hpp:80
static int rgb(int r, int g, int b)
Definition WsfStyler.hpp:39
void UpdateScriptStyle(const StyleRequest &aRequest)
Definition WsfStyler.cpp:177
WsfStyler()
Definition WsfStyler.cpp:568
static int rgb(const QColor &aColor)
Definition WsfStyler.hpp:40
@ cMARGIN_INDEX_ICON
Definition WsfStyler.hpp:84
@ cMARGIN_INDEX_FOLD
Definition WsfStyler.hpp:85
std::unordered_map< const char *, TextType > mNodeTypeToTextType
Definition WsfStyler.hpp:130
@ cREFERENCEERROR_MARKERBIT
Definition WsfStyler.hpp:70
@ cPLATFORM_MARKERBIT
Definition WsfStyler.hpp:62
@ cSENSOR_MARKERBIT
Definition WsfStyler.hpp:66
@ cREFERENCEWARNING_MARKERBIT
Definition WsfStyler.hpp:71
@ cFUEL_MARKERBIT
Definition WsfStyler.hpp:68
@ cMOVER_MARKERBIT
Definition WsfStyler.hpp:64
@ cWEAPON_MARKERBIT
Definition WsfStyler.hpp:67
@ cPROCESSOR_MARKERBIT
Definition WsfStyler.hpp:65
@ cCOMM_MARKERBIT
Definition WsfStyler.hpp:63
@ cPARSEERROR_MARKERBIT
Definition WsfStyler.hpp:69
@ cBREAKPOINT_MARKERMASK
Definition WsfStyler.hpp:72
Definition Runner.hpp:22
TextType
Definition EditorPrefObject.hpp:23
Definition WsfStyler.hpp:88
size_t mFirstPosition
Definition WsfStyler.hpp:109
size_t mLastPosition
Definition WsfStyler.hpp:110
ParseResults * mResultsPtr
Definition WsfStyler.hpp:106
bool mShowScriptErrors
Definition WsfStyler.hpp:113
TextStyler * mStylerInterface
Definition WsfStyler.hpp:108
TextSource * mSourcePtr
Definition WsfStyler.hpp:107
bool mShowNotifications
Definition WsfStyler.hpp:112
StyleRequest()
Definition WsfStyler.hpp:89
bool mStyleIfHidden
Definition WsfStyler.hpp:114
size_t mPositionOffset
Definition WsfStyler.hpp:115
QPlainTextEdit * mControl
Definition WsfStyler.hpp:105
Copyrights Multiple, All Rights Reserved