File: EclipseJavaScriptThemeImporter.cpp

package info (click to toggle)
codelite 10.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 71,364 kB
  • sloc: cpp: 415,397; ansic: 18,277; php: 9,547; lex: 4,181; yacc: 2,820; python: 2,294; sh: 383; makefile: 51; xml: 13
file content (137 lines) | stat: -rw-r--r-- 5,566 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include "EclipseJavaScriptThemeImporter.h"
#include "globals.h"
#include "cl_standard_paths.h"
#include "fileutils.h"
#include "xmlutils.h"
#include "wx/dir.h"
#include <wx/stc/stc.h>

EclipseJavaScriptThemeImporter::EclipseJavaScriptThemeImporter()
{
    // Reserved words
    SetKeywords0("abstract	arguments	boolean	break	byte "
                 "case	catch	char	class*	const "
                 "continue	debugger	default	delete	do "
                 "double	else	enum*	eval	export* "
                 "extends*	false	final	finally	float "
                 "for	function	goto	if	implements "
                 "import*	in	instanceof	int	interface "
                 "let	long	native	new	null "
                 "package	private	protected	public	return "
                 "short	static	super*	switch	synchronized "
                 "this	throw	throws	transient	true "
                 "try	typeof	var	void	volatile "
                 "while	with	yield prototype undefined StringtoString NaN ");

    // Used for wxSTC_C_WORD2 ("functions")
    SetKeywords1(
        "activeElement addEventListener adoptNode	anchors applets "
        "baseURI body close cookie createAttribute createComment createDocumentFragment createElement createTextNode "
        "doctype documentElement documentMode documentURI domain "
        "domConfig embeds forms getElementById getElementsByClassName getElementsByName getElementsByTagName hasFocus "
        "head images implementation importNode inputEncoding lastModified links normalize normalizeDocument open "
        "querySelector"
        "querySelectorAll readyState referrer removeEventListener renameNode scripts strictErrorChecking title URL "
        "write writeln Math NaN name NumberObject valueOf");

    // Used for wxSTC_C_GLOBALCLASS ("classes")
    SetKeywords3("Math Array Date document window");

    SetFileExtensions("*.js;*.javascript;*.qml;*.json");
}

EclipseJavaScriptThemeImporter::~EclipseJavaScriptThemeImporter() {}

LexerConf::Ptr_t EclipseJavaScriptThemeImporter::Import(const wxFileName& eclipseXmlFile)
{
    LexerConf::Ptr_t lexer = InitializeImport(eclipseXmlFile, "javascript", 3);
    CHECK_PTR_RET_NULL(lexer);

    // Covnert to codelite's XML properties
    AddProperty(lexer, wxSTC_C_DEFAULT, "Default", m_foreground.colour, m_background.colour);
    AddProperty(lexer,
                wxSTC_C_COMMENT,
                "Block comment",
                m_multiLineComment.colour,
                m_background.colour,
                m_multiLineComment.isBold,
                m_multiLineComment.isItalic);
    AddProperty(lexer,
                wxSTC_C_COMMENTLINE,
                "Single line comment",
                m_singleLineComment.colour,
                m_background.colour,
                m_singleLineComment.isBold,
                m_singleLineComment.isItalic);
    AddProperty(lexer,
                wxSTC_C_COMMENTDOC,
                "Doxygen block comment",
                m_javadoc.colour,
                m_background.colour,
                m_javadoc.isBold,
                m_javadoc.isItalic);
    AddProperty(
        lexer, wxSTC_C_NUMBER, "Number", m_number.colour, m_background.colour, m_number.isBold, m_number.isItalic);
    AddProperty(lexer,
                wxSTC_C_WORD,
                "JavaScript keyword",
                m_keyword.colour,
                m_background.colour,
                m_keyword.isBold,
                m_keyword.isItalic);
    AddProperty(
        lexer, wxSTC_C_STRING, "String", m_string.colour, m_background.colour, m_string.isBold, m_string.isItalic);
    AddProperty(lexer,
                wxSTC_C_CHARACTER,
                "Character",
                m_string.colour,
                m_background.colour,
                m_string.isBold,
                m_string.isItalic);
    AddProperty(lexer, wxSTC_C_OPERATOR, "Operator", m_foreground.colour, m_background.colour);
    AddProperty(lexer, wxSTC_C_IDENTIFIER, "Identifier", m_foreground.colour, m_background.colour);
    AddProperty(lexer,
                wxSTC_C_STRINGEOL,
                "Open String",
                m_string.colour,
                m_background.colour,
                m_string.isBold,
                m_string.isItalic);
    AddProperty(lexer,
                wxSTC_C_COMMENTLINEDOC,
                "Doxygen single line comment",
                m_javadoc.colour,
                m_background.colour,
                m_javadoc.isBold,
                m_javadoc.isItalic);
    AddProperty(lexer,
                wxSTC_C_WORD2,
                "JavaScript functions",
                m_variable.colour,
                m_background.colour,
                m_javadoc.isBold,
                m_javadoc.isItalic);
    AddProperty(lexer,
                wxSTC_C_GLOBALCLASS,
                "JavaScript global classes",
                m_klass.colour,
                m_background.colour,
                m_javadoc.isBold,
                m_javadoc.isItalic);
    AddProperty(lexer,
                wxSTC_C_COMMENTDOCKEYWORD,
                "Doxygen keyword",
                m_javadocKeyword.colour,
                m_background.colour,
                m_javadocKeyword.isBold,
                m_javadocKeyword.isItalic);
    AddProperty(lexer,
                wxSTC_C_COMMENTDOCKEYWORDERROR,
                "Doxygen keyword error",
                m_javadocKeyword.colour,
                m_background.colour,
                m_javadocKeyword.isBold,
                m_javadocKeyword.isItalic);
    FinalizeImport(lexer);
    return lexer;
}