void MaterialScriptEditor::initialize()
{
    //StyleClearAll();
    SetLexer(wxSCI_LEX_OMS);

    // Load keywords
    wxString path = wxT("../lexers/oms/keywords");
    loadKeywords(path);

    // Load call tips
    path = wxT("../lexers/oms/calltips");
    getCallTipManager().load(path);
    wxChar trigger(' ');
    getCallTipManager().addTrigger(trigger);

    // Load docs
    path = wxT("../lexers/oms/docs");
    getDocManager().load(path);

    // Set styles
    StyleSetForeground(wxSCI_OMS_DEFAULT, wxColour(0, 0, 0));
    StyleSetFontAttr(wxSCI_OMS_DEFAULT, 10, "Courier New", false, false, false);
    StyleSetForeground(wxSCI_OMS_COMMENT, wxColour(0, 128, 0));
    StyleSetFontAttr(wxSCI_OMS_COMMENT, 10, "Courier New", false, false, false);
    StyleSetForeground(wxSCI_OMS_PRIMARY, wxColour(0, 0, 255));
    StyleSetFontAttr(wxSCI_OMS_PRIMARY, 10, "Courier New", true, false, false);
    StyleSetForeground(wxSCI_OMS_ATTRIBUTE, wxColour(136, 0, 0));
    StyleSetFontAttr(wxSCI_OMS_ATTRIBUTE, 10, "Courier New", true, false, false);
    StyleSetForeground(wxSCI_OMS_VALUE, wxColour(160, 0, 160));
    StyleSetFontAttr(wxSCI_OMS_VALUE, 10, "Courier New", false, false, false);
    StyleSetForeground(wxSCI_OMS_NUMBER, wxColour(0, 0, 128));
    StyleSetFontAttr(wxSCI_OMS_NUMBER, 10, "Courier New", false, false, false);
}
示例#2
0
void GLSLEditor::initialize()
{
	StyleClearAll();
	SetLexer(wxSCI_LEX_CPP);

	// Load keywords
	wxString path = wxT("../lexers/glsl/keywords");
	loadKeywords(path);

	// Load call tips
	path = wxT("../lexers/glsl/calltips");
	getCallTipManager().load(path);
	wxChar trigger('(');
	getCallTipManager().addTrigger(trigger);

	// Set styles
	StyleSetForeground(wxSCI_C_COMMENT, wxColour(0, 128, 0));
	StyleSetFontAttr(wxSCI_C_COMMENT, 10, "Courier New", false, false, false);
	StyleSetForeground(wxSCI_C_COMMENTLINE, wxColour(0, 128, 0));
	StyleSetFontAttr(wxSCI_C_COMMENTLINE, 10, "Courier New", false, false, false);
	StyleSetForeground(wxSCI_C_NUMBER, wxColour(0, 0, 128));
	StyleSetFontAttr(wxSCI_C_NUMBER, 10, "Courier New", false, false, false);
	StyleSetForeground(wxSCI_C_STRING, wxColour(200, 200, 200));
	StyleSetFontAttr(wxSCI_C_STRING, 10, "Courier New", false, false, false);
	StyleSetForeground(wxSCI_C_WORD, wxColour(0, 0, 255));
	StyleSetFontAttr(wxSCI_C_WORD, 10, "Courier New", false, false, false);
	StyleSetForeground(wxSCI_C_WORD2, wxColour(136, 0, 0));
	StyleSetFontAttr(wxSCI_C_WORD2, 10, "Courier New", false, false, false);
}
示例#3
0
MiniGPortugol::LexAnalyzer::LexAnalyzer(char *filename) {
	std::cout << "Loading keywords" << std::endl;
	if (!loadKeywords()) {
			exit(1);
	}
	std::sort(keywords.begin(), keywords.end(),
	 [](std::string &a, std::string &b) -> bool { return a < b; });
	std::cout << "Initializing LexAnalyzer" << std::endl;
	std::cout << "------------------------" << std::endl;
	std::cout << "    Token Recognize     " << std::endl;
	std::cout << "------------------------" << std::endl;
	processor = new TextProcessor(filename);
}
示例#4
0
bool LLTextParser::parseFullLineHighlights(const std::string &text, LLColor4 *color)
{
    loadKeywords();

    for (S32 i=0; i<mHighlights.size(); i++)
    {
        if ((S32)mHighlights[i]["highlight"]==ALL || (S32)mHighlights[i]["condition"]==MATCHES)
        {
            if (findPattern(text,mHighlights[i]) >= 0 )
            {
                LLSD color_llsd = mHighlights[i]["color"];
                color->setValue(color_llsd);
                return TRUE;
            }
        }
    }
    return FALSE;	//No matches found.
}
void HLSLEditor::initialize()
{
	StyleClearAll();
	SetLexer(wxSCI_LEX_OMS);

	// Load keywords
	std::string path = "res/lexers/hlsl/keywords";
	loadKeywords(path);

	// Set styles
	StyleSetForeground(wxSCI_OMS_DEFAULT, wxColour(0, 0, 0));
	StyleSetFontAttr(wxSCI_OMS_DEFAULT, 10, wxT("Courier New"), false, false, false);
	StyleSetForeground(wxSCI_OMS_COMMENT, wxColour(0, 128, 0));
	StyleSetFontAttr(wxSCI_OMS_COMMENT, 10, wxT("Courier New"), false, false, false);
	StyleSetForeground(wxSCI_OMS_PRIMARY, wxColour(0, 0, 255));
	StyleSetFontAttr(wxSCI_OMS_PRIMARY, 10, wxT("Courier New"), true, false, false);
	StyleSetForeground(wxSCI_OMS_ATTRIBUTE, wxColour(136, 0, 0));
	StyleSetFontAttr(wxSCI_OMS_ATTRIBUTE, 10, wxT("Courier New"), true, false, false);
	StyleSetForeground(wxSCI_OMS_VALUE, wxColour(160, 0, 160));
	StyleSetFontAttr(wxSCI_OMS_VALUE, 10, wxT("Courier New"), false, false, false);
	StyleSetForeground(wxSCI_OMS_NUMBER, wxColour(0, 0, 128));
	StyleSetFontAttr(wxSCI_OMS_NUMBER, 10, wxT("Courier New"), false, false, false);
}
示例#6
0
LexerArduino::LexerArduino(QObject *parent, bool caseInsensitiveKeywords)
    : QsciLexerCPP(parent, caseInsensitiveKeywords)
{
    loadKeywords();
}
示例#7
0
LLSD LLTextParser::parsePartialLineHighlights(const std::string &text, const LLColor4 &color, EHighlightPosition part, S32 index)
{
    loadKeywords();

    //evil recursive string atomizer.
    LLSD ret_llsd, start_llsd, middle_llsd, end_llsd;

    for (S32 i=index; i<mHighlights.size(); i++)
    {
        S32 condition = mHighlights[i]["condition"];
        if ((S32)mHighlights[i]["highlight"]==PART && condition!=MATCHES)
        {
            if ( (condition==STARTS_WITH && part==START) ||
                    (condition==ENDS_WITH   && part==END)   ||
                    condition==CONTAINS    || part==WHOLE )
            {
                S32 start = findPattern(text,mHighlights[i]);
                if (start >= 0 )
                {
                    S32 end =  std::string(mHighlights[i]["pattern"]).length();
                    S32 len = text.length();
                    EHighlightPosition newpart;
                    if (start==0)
                    {
                        start_llsd[0]["text"] =text.substr(0,end);
                        start_llsd[0]["color"]=mHighlights[i]["color"];

                        if (end < len)
                        {
                            if (part==END   || part==WHOLE) newpart=END;
                            else newpart=MIDDLE;
                            end_llsd=parsePartialLineHighlights(text.substr( end ),color,newpart,i);
                        }
                    }
                    else
                    {
                        if (part==START || part==WHOLE) newpart=START;
                        else newpart=MIDDLE;

                        start_llsd=parsePartialLineHighlights(text.substr(0,start),color,newpart,i+1);

                        if (end < len)
                        {
                            middle_llsd[0]["text"] =text.substr(start,end);
                            middle_llsd[0]["color"]=mHighlights[i]["color"];

                            if (part==END   || part==WHOLE) newpart=END;
                            else newpart=MIDDLE;

                            end_llsd=parsePartialLineHighlights(text.substr( (start+end) ),color,newpart,i);
                        }
                        else
                        {
                            end_llsd[0]["text"] =text.substr(start,end);
                            end_llsd[0]["color"]=mHighlights[i]["color"];
                        }
                    }

                    S32 retcount=0;

                    //FIXME These loops should be wrapped into a subroutine.
                    for (LLSD::array_iterator iter = start_llsd.beginArray();
                            iter != start_llsd.endArray(); ++iter)
                    {
                        LLSD highlight = *iter;
                        ret_llsd[retcount++]=highlight;
                    }

                    for (LLSD::array_iterator iter = middle_llsd.beginArray();
                            iter != middle_llsd.endArray(); ++iter)
                    {
                        LLSD highlight = *iter;
                        ret_llsd[retcount++]=highlight;
                    }

                    for (LLSD::array_iterator iter = end_llsd.beginArray();
                            iter != end_llsd.endArray(); ++iter)
                    {
                        LLSD highlight = *iter;
                        ret_llsd[retcount++]=highlight;
                    }

                    return ret_llsd;
                }
            }
        }
    }

    //No patterns found.  Just send back what was passed in.
    ret_llsd[0]["text"] =text;
    LLSD color_sd = color.getValue();
    ret_llsd[0]["color"]=color_sd;
    return ret_llsd;
}