-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathJavaScript.py
More file actions
46 lines (38 loc) · 1.48 KB
/
JavaScript.py
File metadata and controls
46 lines (38 loc) · 1.48 KB
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
from __future__ import absolute_import
from . import HTMLGenerator
from . import Keywords
from . import Lexer
from .DispatchHandler import DispatchHandler
from ._SilverCity import find_lexer_module_by_id, PropertySet, WordList
from .ScintillaConstants import SCLEX_CPP
from . import LanguageInfo
class JavaScriptLexer(Lexer.Lexer):
def __init__(self, properties = PropertySet()):
self._properties = properties
self._lexer = find_lexer_module_by_id(SCLEX_CPP)
self._keyword_lists = [
WordList(Keywords.js_keywords),
WordList(),
WordList(),
WordList(),
WordList()
]
class JavaScriptHandler(DispatchHandler):
def __init__(self):
DispatchHandler.__init__(self, 'SCE_C')
class JavaScriptHTMLGenerator(HTMLGenerator.SimpleHTMLGenerator, JavaScriptHandler):
name = 'js'
description = 'JavaScript'
def __init__(self):
JavaScriptHandler.__init__(self)
HTMLGenerator.SimpleHTMLGenerator.__init__(self, 'SCE_C')
def generate_html(self, file, buffer, lexer = JavaScriptLexer()):
self._file = file
lexer.tokenize_by_style(buffer, self.event_handler)
javascript_language_info = LanguageInfo.LanguageInfo(
'JavaScript',
['js', 'javascript'],
[],
[JavaScriptHTMLGenerator]
)
LanguageInfo.register_language(javascript_language_info)