| 1 | import HTMLGenerator |
|---|
| 2 | import Keywords |
|---|
| 3 | import Lexer |
|---|
| 4 | from DispatchHandler import DispatchHandler |
|---|
| 5 | from _SilverCity import find_lexer_module_by_id, PropertySet, WordList |
|---|
| 6 | from ScintillaConstants import SCLEX_CPP |
|---|
| 7 | import LanguageInfo |
|---|
| 8 | |
|---|
| 9 | class CSharpLexer(Lexer.Lexer): |
|---|
| 10 | def __init__(self, properties = PropertySet()): |
|---|
| 11 | self._properties = properties |
|---|
| 12 | self._lexer = find_lexer_module_by_id(SCLEX_CPP) |
|---|
| 13 | self._keyword_lists = [ |
|---|
| 14 | WordList(Keywords.csharp_keywords), |
|---|
| 15 | WordList(), # User defined (important functions, constants, etc.) |
|---|
| 16 | WordList(Keywords.doxygen_keywords), |
|---|
| 17 | WordList(), # "Fold header keywords" - whatever that is |
|---|
| 18 | WordList(), # Global classes and typedefs |
|---|
| 19 | ] |
|---|
| 20 | |
|---|
| 21 | class CSharpHandler(DispatchHandler): |
|---|
| 22 | def __init__(self): |
|---|
| 23 | DispatchHandler.__init__(self, 'SCE_C') |
|---|
| 24 | |
|---|
| 25 | class CSharpHTMLGenerator(HTMLGenerator.SimpleHTMLGenerator, CSharpHandler): |
|---|
| 26 | name = 'csharp' |
|---|
| 27 | description = 'C#' |
|---|
| 28 | |
|---|
| 29 | def __init__(self): |
|---|
| 30 | CSharpHandler.__init__(self) |
|---|
| 31 | HTMLGenerator.SimpleHTMLGenerator.__init__(self, 'SCE_C') |
|---|
| 32 | |
|---|
| 33 | def generate_html(self, file, buffer, lexer = CSharpLexer()): |
|---|
| 34 | self._file = file |
|---|
| 35 | |
|---|
| 36 | lexer.tokenize_by_style(buffer, self.event_handler) |
|---|
| 37 | |
|---|
| 38 | |
|---|
| 39 | csharp_language_info = LanguageInfo.LanguageInfo( |
|---|
| 40 | 'C#', |
|---|
| 41 | ['cs'], |
|---|
| 42 | [], |
|---|
| 43 | [CSharpHTMLGenerator] |
|---|
| 44 | ) |
|---|
| 45 | |
|---|
| 46 | LanguageInfo.register_language(csharp_language_info) |
|---|