Moving LSL highlighting colour info into .../skins/default/colors.xml where it makes more sense than its own xml file. Changing other functions to read it.
parent
b615858d6c
commit
7d5ed4f747
|
|
@ -71,7 +71,6 @@ inline BOOL LLKeywordToken::isTail(const llwchar* s) const
|
|||
|
||||
LLKeywords::LLKeywords() : mLoaded(FALSE)
|
||||
{
|
||||
setFilenameColors( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_colors.xml") );
|
||||
setFilenameSyntax( gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS,"keywords_lsl_tokens.xml") );
|
||||
}
|
||||
|
||||
|
|
@ -84,7 +83,7 @@ LLKeywords::~LLKeywords()
|
|||
|
||||
|
||||
|
||||
void LLKeywords::addColorGroup(const std::string key_in, const LLColor3 color)
|
||||
void LLKeywords::addColorGroup(const std::string key_in, const LLColor4 color)
|
||||
{
|
||||
WStringMapIndex key ( utf8str_to_wstring(key_in) );
|
||||
mColorGroupMap[key] = color;
|
||||
|
|
@ -93,7 +92,7 @@ void LLKeywords::addColorGroup(const std::string key_in, const LLColor3 color)
|
|||
// Add the token as described
|
||||
void LLKeywords::addToken(LLKeywordToken::TOKEN_TYPE type,
|
||||
const std::string& key_in,
|
||||
const LLColor3& color,
|
||||
const LLColor4& color,
|
||||
const std::string& tool_tip_in,
|
||||
const std::string& delimiter_in)
|
||||
{
|
||||
|
|
@ -165,33 +164,47 @@ std::string LLKeywords::getAttribute(const std::string& key)
|
|||
return (it != mAttributes.end()) ? it->second : "";
|
||||
}
|
||||
|
||||
LLColor3 LLKeywords::getColorGroup(const std::string key_in)
|
||||
LLColor4 LLKeywords::getColorGroup(const std::string key_in)
|
||||
{
|
||||
// LLColor3 initialises to Black (0,0,0)
|
||||
LLColor3 Colour;
|
||||
WStringMapIndex key ( utf8str_to_wstring(key_in) );
|
||||
group_color_map_t::iterator it = mColorGroupMap.find(key);
|
||||
if (it == mColorGroupMap.end())
|
||||
{
|
||||
LL_WARNS("Colour lookup") << "'" << key_in << "' not found!" << LL_ENDL;
|
||||
}
|
||||
else
|
||||
{
|
||||
Colour = it->second;
|
||||
std::string ColourGroup = "Black";
|
||||
if (key_in == "constants-float") {
|
||||
ColourGroup = "SyntaxLslConstantFloat";
|
||||
} else if (key_in == "constants-integer") {
|
||||
ColourGroup = "SyntaxLslConstantInteger";
|
||||
} else if (key_in == "constants-key") {
|
||||
ColourGroup = "SyntaxLslConstantKey";
|
||||
} else if (key_in == "constants-string") {
|
||||
ColourGroup = "SyntaxLslConstantRotation";
|
||||
} else if (key_in == "constants-string") {
|
||||
ColourGroup = "SyntaxLslConstantString";
|
||||
} else if (key_in == "constants-vector") {
|
||||
ColourGroup = "SyntaxLslConstantVector";
|
||||
} else if (key_in == "controls") {
|
||||
ColourGroup = "SyntaxLslControlFlow";
|
||||
} else if (key_in == "events") {
|
||||
ColourGroup = "SyntaxLslEvent";
|
||||
} else if (key_in == "functions") {
|
||||
ColourGroup = "SyntaxLslFunction";
|
||||
} else if (key_in == "types") {
|
||||
ColourGroup = "SyntaxLslDataType";
|
||||
} else if (key_in == "sections") {
|
||||
ColourGroup = "SyntaxLslSection";
|
||||
} else if (key_in == "misc-double_quotation_marks") {
|
||||
ColourGroup = "SyntaxLslStringLiteral";
|
||||
} else if (key_in == "misc-comments_1_sided") {
|
||||
ColourGroup = "SyntaxLslComment1Sided";
|
||||
} else if (key_in == "misc-comments_2_sided") {
|
||||
ColourGroup = "SyntaxLslComment2Sided";
|
||||
}
|
||||
|
||||
return Colour;
|
||||
return LLUIColorTable::instance().getColor(ColourGroup);
|
||||
}
|
||||
|
||||
BOOL LLKeywords::initialise()
|
||||
{
|
||||
mReady = false;
|
||||
|
||||
if (! loadIntoLLSD(mFilenameColors, mColors) )
|
||||
{
|
||||
LL_ERRS("") << "Failed to load color data, cannot continue!" << LL_ENDL;
|
||||
}
|
||||
else if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
|
||||
if (! loadIntoLLSD(mFilenameSyntax, mSyntax) )
|
||||
{
|
||||
LL_ERRS("") << "Failed to load syntax data from '" << mFilenameSyntax << "', cannot continue!" << LL_ENDL;
|
||||
}
|
||||
|
|
@ -199,16 +212,6 @@ BOOL LLKeywords::initialise()
|
|||
{
|
||||
mReady = true;
|
||||
}
|
||||
|
||||
if (ready())
|
||||
{
|
||||
processColors();
|
||||
}
|
||||
else
|
||||
{
|
||||
LL_ERRS("") << LL_ENDL;
|
||||
LL_ERRS("") << "Failed to load one or both data files, cannot continue!" << LL_ENDL;
|
||||
}
|
||||
return mReady;
|
||||
}
|
||||
|
||||
|
|
@ -251,7 +254,7 @@ BOOL LLKeywords::loadIntoLLSD(const std::string& filename, LLSD& data)
|
|||
/**
|
||||
* @brief Start processing the colour LLSD from its beginning.
|
||||
*
|
||||
*/
|
||||
* /
|
||||
std::string LLKeywords::processColors()
|
||||
{
|
||||
return processColors(mColors, "");
|
||||
|
|
@ -261,7 +264,7 @@ std::string LLKeywords::processColors()
|
|||
* @brief Recursively process the colour LLSD from an arbitrary level.
|
||||
* @desc Process the supplied LLSD for colour data. The strPrefix is a string
|
||||
* of hyphen separated keys from previous levels.
|
||||
*/
|
||||
* /
|
||||
std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefix)
|
||||
{
|
||||
if (settings.isMap() || (! settings.isMap() && strPrefix != "") )
|
||||
|
|
@ -299,12 +302,13 @@ std::string LLKeywords::processColors(LLSD &settings, const std::string strPrefi
|
|||
}
|
||||
return strPrefix;
|
||||
}
|
||||
*/
|
||||
|
||||
void LLKeywords::processTokens()
|
||||
{
|
||||
// Add 'standard' stuff: Quotes, Comments, Strings, Labels, etc. before processing the LLSD
|
||||
std::string delimiter;
|
||||
addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("label"), "Label\nTarget for jump statement", delimiter );
|
||||
addToken(LLKeywordToken::TT_LABEL, "@", getColorGroup("misc-flow-label"), "Label\nTarget for jump statement", delimiter );
|
||||
addToken(LLKeywordToken::TT_ONE_SIDED_DELIMITER, "//", getColorGroup("misc-comments_1_sided"), "Comment (single-line)\nNon-functional commentary or disabled code", delimiter );
|
||||
addToken(LLKeywordToken::TT_TWO_SIDED_DELIMITER, "/*", getColorGroup("misc-comments_2_sided"), "Comment (multi-line)\nNon-functional commentary or disabled code", "*/" );
|
||||
addToken(LLKeywordToken::TT_DOUBLE_QUOTATION_MARKS, "\"", getColorGroup("misc-double_quotation_marks"), "String literal", "\"" );
|
||||
|
|
@ -344,7 +348,7 @@ void LLKeywords::processTokens()
|
|||
|
||||
void LLKeywords::processTokensGroup(LLSD& Tokens, const std::string Group)
|
||||
{
|
||||
LLColor3 Color = getColorGroup(Group);
|
||||
LLColor4 Color;
|
||||
LL_INFOS("Tokens") << "Group: '" << Group << "', using colour: '" << Color << "'" << LL_ENDL;
|
||||
|
||||
LLKeywordToken::TOKEN_TYPE token_type = LLKeywordToken::TT_UNKNOWN;
|
||||
|
|
@ -534,7 +538,7 @@ bool LLKeywords::WStringMapIndex::operator<(const LLKeywords::WStringMapIndex &o
|
|||
return result;
|
||||
}
|
||||
|
||||
LLColor3 LLKeywords::readColor( const std::string& s )
|
||||
LLColor4 LLKeywords::readColor( const std::string& s )
|
||||
{
|
||||
F32 r, g, b;
|
||||
r = g = b = 0.0f;
|
||||
|
|
@ -543,22 +547,22 @@ LLColor3 LLKeywords::readColor( const std::string& s )
|
|||
{
|
||||
llinfos << " poorly formed color in keyword file" << llendl;
|
||||
}
|
||||
return LLColor3( r, g, b );
|
||||
return LLColor4( r, g, b, 1.f);
|
||||
}
|
||||
|
||||
LLColor3 LLKeywords::readColor(LLSD& sd)
|
||||
LLColor4 LLKeywords::readColor(LLSD& sd)
|
||||
{
|
||||
if (sd.isArray())
|
||||
{
|
||||
return LLColor3 (sd);
|
||||
return LLColor4 (sd, 1.f);
|
||||
}
|
||||
else if (sd.isMap())
|
||||
{
|
||||
return LLColor3 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal() );
|
||||
return LLColor4 ( sd.get("x").asReal(), sd.get("y").asReal(), sd.get("z").asReal(), 1.f );
|
||||
}
|
||||
else
|
||||
{
|
||||
return LLColor3::black;
|
||||
return LLColor4::black;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "llstring.h"
|
||||
#include "v3color.h"
|
||||
#include "v4color.h"
|
||||
#include <map>
|
||||
#include <list>
|
||||
#include <deque>
|
||||
|
|
@ -69,7 +70,7 @@ public:
|
|||
TT_TYPE // WORD
|
||||
};
|
||||
|
||||
LLKeywordToken( TOKEN_TYPE type, const LLColor3& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
|
||||
LLKeywordToken( TOKEN_TYPE type, const LLColor4& color, const LLWString& token, const LLWString& tool_tip, const LLWString& delimiter )
|
||||
:
|
||||
mType( type ),
|
||||
mToken( token ),
|
||||
|
|
@ -84,7 +85,7 @@ public:
|
|||
BOOL isHead(const llwchar* s) const;
|
||||
BOOL isTail(const llwchar* s) const;
|
||||
const LLWString& getToken() const { return mToken; }
|
||||
const LLColor3& getColor() const { return mColor; }
|
||||
const LLColor4& getColor() const { return mColor; }
|
||||
TOKEN_TYPE getType() const { return mType; }
|
||||
const LLWString& getToolTip() const { return mToolTip; }
|
||||
const LLWString& getDelimiter() const { return mDelimiter; }
|
||||
|
|
@ -96,7 +97,7 @@ public:
|
|||
private:
|
||||
TOKEN_TYPE mType;
|
||||
LLWString mToken;
|
||||
LLColor3 mColor;
|
||||
LLColor4 mColor;
|
||||
LLWString mToolTip;
|
||||
LLWString mDelimiter;
|
||||
};
|
||||
|
|
@ -107,12 +108,11 @@ public:
|
|||
LLKeywords();
|
||||
~LLKeywords();
|
||||
|
||||
void addColorGroup(const std::string key_in, const LLColor3 color);
|
||||
LLColor3 getColorGroup(const std::string key_in);
|
||||
void addColorGroup(const std::string key_in, const LLColor4 color);
|
||||
LLColor4 getColorGroup(const std::string key_in);
|
||||
BOOL loadFromFile();
|
||||
BOOL loadFromFile(const std::string& filename);
|
||||
BOOL isLoaded() const { return mLoaded; }
|
||||
void setFilenameColors(const std::string filename) { mFilenameColors = filename; }
|
||||
void setFilenameSyntax(const std::string filename) { mFilenameSyntax = filename; }
|
||||
|
||||
void findSegments(std::vector<LLTextSegmentPtr> *seg_list, const LLWString& text, const LLColor4 &defaultColor, class LLTextEditor& editor );
|
||||
|
|
@ -124,7 +124,7 @@ public:
|
|||
// Add the token as described
|
||||
void addToken(LLKeywordToken::TOKEN_TYPE type,
|
||||
const std::string& key,
|
||||
const LLColor3& color,
|
||||
const LLColor4& color,
|
||||
const std::string& tool_tip = LLStringUtil::null,
|
||||
const std::string& delimiter = LLStringUtil::null);
|
||||
|
||||
|
|
@ -153,7 +153,7 @@ public:
|
|||
bool mOwner;
|
||||
|
||||
|
||||
LLColor3 mColor;
|
||||
LLColor4 mColor;
|
||||
};
|
||||
|
||||
typedef std::map<WStringMapIndex, LLKeywordToken*> word_token_map_t;
|
||||
|
|
@ -161,7 +161,7 @@ public:
|
|||
keyword_iterator_t begin() const { return mWordTokenMap.begin(); }
|
||||
keyword_iterator_t end() const { return mWordTokenMap.end(); }
|
||||
|
||||
typedef std::map<WStringMapIndex, LLColor3> group_color_map_t;
|
||||
typedef std::map<WStringMapIndex, LLColor4> group_color_map_t;
|
||||
typedef group_color_map_t::const_iterator color_iterator_t;
|
||||
group_color_map_t mColorGroupMap;
|
||||
|
||||
|
|
@ -171,8 +171,8 @@ public:
|
|||
|
||||
protected:
|
||||
void processTokensGroup(LLSD& Tokens, const std::string Group);
|
||||
LLColor3 readColor(const std::string& s);
|
||||
LLColor3 readColor(LLSD& sd);
|
||||
LLColor4 readColor(const std::string& s);
|
||||
LLColor4 readColor(LLSD& sd);
|
||||
void insertSegment(std::vector<LLTextSegmentPtr>& seg_list, LLTextSegmentPtr new_segment, S32 text_len, const LLColor4 &defaultColor, class LLTextEditor& editor);
|
||||
void insertSegments(const LLWString& wtext, std::vector<LLTextSegmentPtr>& seg_list, LLKeywordToken* token, S32 text_len, S32 seg_start, S32 seg_end, const LLColor4 &defaultColor, LLTextEditor& editor);
|
||||
BOOL loadIntoLLSD( const std::string& filename, LLSD& data );
|
||||
|
|
@ -195,7 +195,6 @@ protected:
|
|||
private:
|
||||
BOOL ready() { return mReady; };
|
||||
BOOL mReady;
|
||||
std::string mFilenameColors;
|
||||
std::string mFilenameSyntax;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2488,7 +2488,7 @@ static LLFastTimer::DeclareTimer FTM_SYNTAX_HIGHLIGHTING("Syntax Highlighting");
|
|||
void LLTextEditor::loadKeywords(const std::string& filename,
|
||||
const std::vector<std::string>& funcs,
|
||||
const std::vector<std::string>& tooltips,
|
||||
const LLColor3& color)
|
||||
const LLColor4& color)
|
||||
{
|
||||
LLFastTimer ft(FTM_SYNTAX_HIGHLIGHTING);
|
||||
if(mKeywords.loadFromFile())
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ public:
|
|||
void loadKeywords(const std::string& filename,
|
||||
const std::vector<std::string>& funcs,
|
||||
const std::vector<std::string>& tooltips,
|
||||
const LLColor3& func_color);
|
||||
const LLColor4& func_color);
|
||||
LLKeywords::keyword_iterator_t keywordsBegin() { return mKeywords.begin(); }
|
||||
LLKeywords::keyword_iterator_t keywordsEnd() { return mKeywords.end(); }
|
||||
|
||||
|
|
|
|||
|
|
@ -1,176 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-model href="llsd.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
|
||||
<llsd>
|
||||
<map>
|
||||
<key>types</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.1</real>
|
||||
<real>0.3</real>
|
||||
<real>0.1</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>constants</key>
|
||||
<map>
|
||||
<key>float</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.3</real>
|
||||
<real>0.1</real>
|
||||
<real>0.5</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>integer</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.1</real>
|
||||
<real>0.1</real>
|
||||
<real>0.5</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>key</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.1</real>
|
||||
<real>0.3</real>
|
||||
<real>0.5</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>rotation</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.4</real>
|
||||
<real>0.2</real>
|
||||
<real>0.4</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>string</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.1</real>
|
||||
<real>0.3</real>
|
||||
<real>0.5</real>
|
||||
</array>
|
||||
</map>
|
||||
<key>vector</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.4</real>
|
||||
<real>0.2</real>
|
||||
<real>0.4</real>
|
||||
</array>
|
||||
</map>
|
||||
</map>
|
||||
|
||||
<key>misc</key>
|
||||
<map>
|
||||
<key>flow-control</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>0.8</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>comments_1_sided</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.8</real>
|
||||
<real>0.3</real>
|
||||
<real>0.15</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>comments_2_sided</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.8</real>
|
||||
<real>0.3</real>
|
||||
<real>0.15</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>flow-label</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.0</real>
|
||||
<real>0.8</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>double_quotation_marks</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.2</real>
|
||||
<real>0.0</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>sections</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.5</real>
|
||||
<real>0.1</real>
|
||||
<real>0.3</real>
|
||||
</array>
|
||||
</map>
|
||||
</map>
|
||||
|
||||
<key>events</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.0</real>
|
||||
<real>0.3</real>
|
||||
<real>0.5</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>functions</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.5</real>
|
||||
<real>0.0</real>
|
||||
<real>0.15</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>deprecated</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.9</real>
|
||||
<real>0.4</real>
|
||||
<real>0.55</real>
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>god_mode</key>
|
||||
<map>
|
||||
<key>color</key>
|
||||
<array>
|
||||
<real>0.7</real>
|
||||
<real>0.2</real>
|
||||
<real>0.35</real>
|
||||
</array>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
|
@ -884,4 +884,57 @@
|
|||
<color
|
||||
name="blue"
|
||||
value="0 0 1 1"/>
|
||||
|
||||
<!-- syntax highlighting (LSL Scripts) -->
|
||||
<color
|
||||
name="SyntaxLslComment1Sided"
|
||||
value=".8 .3 .15 1.0" />
|
||||
<color
|
||||
name="SyntaxLslComment2Sided"
|
||||
value=".8 .3 .15 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantFloat"
|
||||
value=".3 .1 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantInteger"
|
||||
value=".1 .1 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantKey"
|
||||
value=".1 .3 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantRotation"
|
||||
value=".2 .4 .2 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantString"
|
||||
value=".1 .3 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslConstantVector"
|
||||
value=".2 .4 .2 1.0" />
|
||||
<color
|
||||
name="SyntaxLslControlFlow"
|
||||
value="0 0 .8 1.0" />
|
||||
<color
|
||||
name="SyntaxLslControlLabel"
|
||||
value="0 0 .8 1.0" />
|
||||
<color
|
||||
name="SyntaxLslDataType"
|
||||
value=".1 .3 .1 1.0" />
|
||||
<color
|
||||
name="SyntaxLslDeprecated"
|
||||
value=".9 .4 .55 1.0" />
|
||||
<color
|
||||
name="SyntaxLslEvent"
|
||||
value="0 .3 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslFunction"
|
||||
value=".3 0 .5 1.0" />
|
||||
<color
|
||||
name="SyntaxLslGodMode"
|
||||
value="0.7 .2 .35 1.0" />
|
||||
<color
|
||||
name="SyntaxLslSection"
|
||||
value=".5 .1 .3 1.0" />
|
||||
<color
|
||||
name="SyntaxLslStringLiteral"
|
||||
value="0 .2 0 1.0" />
|
||||
</colors>
|
||||
|
|
|
|||
Loading…
Reference in New Issue