diff options
author | XhmikosR <xhmikosr@gmail.com> | 2015-09-15 09:09:53 +0300 |
---|---|---|
committer | XhmikosR <xhmikosr@gmail.com> | 2015-09-15 09:09:53 +0300 |
commit | 3f436bd3d9598136508384bee25b0e63f76437b1 (patch) | |
tree | f20253c1e7acb16163994a706d356d9588548628 /scintilla/scripts/ScintillaData.py | |
parent | d95fb3ed56318188dc2496e11f7f97931412f5b6 (diff) | |
download | notepad2-mod-3f436bd3d9598136508384bee25b0e63f76437b1.zip notepad2-mod-3f436bd3d9598136508384bee25b0e63f76437b1.tar.gz notepad2-mod-3f436bd3d9598136508384bee25b0e63f76437b1.tar.bz2 |
Update Scintilla to v3.6.1.
Diffstat (limited to 'scintilla/scripts/ScintillaData.py')
-rw-r--r-- | scintilla/scripts/ScintillaData.py | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/scintilla/scripts/ScintillaData.py b/scintilla/scripts/ScintillaData.py index f9c7718..a5f2695 100644 --- a/scintilla/scripts/ScintillaData.py +++ b/scintilla/scripts/ScintillaData.py @@ -24,9 +24,13 @@ # sorted list of lexer properties # propertyDocuments # dictionary of property documentation { name: document string } +# sclexFromName +# dictionary of SCLEX_* IDs { name: SCLEX_ID } +# fileFromSclex +# dictionary of file names { SCLEX_ID: file name } # This file can be run to see the data it provides. -# Requires Python 2.5 or later +# Requires Python 2.7 or later from __future__ import with_statement @@ -36,11 +40,21 @@ import FileGenerator def FindModules(lexFile): modules = [] + partLine = "" with open(lexFile) as f: for l in f.readlines(): - if l.startswith("LexerModule"): - l = l.replace("(", " ") - modules.append(l.split()[1]) + l = l.rstrip() + if partLine or l.startswith("LexerModule"): + if ")" in l: + l = partLine + l + l = l.replace("(", " ") + l = l.replace(")", " ") + l = l.replace(",", " ") + parts = l.split() + modules.append([parts[1], parts[2], parts[4][1:-1]]) + partLine = "" + else: + partLine = partLine + l return modules # Properties that start with lexer. or fold. are automatically found but there are some @@ -185,8 +199,14 @@ class ScintillaData: self.lexerModules = [] lexerProperties = set() self.propertyDocuments = {} + self.sclexFromName = {} + self.fileFromSclex = {} for lexFile in lexFilePaths: - self.lexerModules.extend(FindModules(lexFile)) + modules = FindModules(lexFile) + for module in modules: + self.sclexFromName[module[2]] = module[1] + self.fileFromSclex[module[1]] = lexFile + self.lexerModules.append(module[0]) for k in FindProperties(lexFile).keys(): lexerProperties.add(k) documents = FindPropertyDocumentation(lexFile) @@ -209,6 +229,12 @@ if __name__=="__main__": sci.dateModified, sci.yearModified, sci.mdyModified, sci.dmyModified, sci.myModified)) printWrapped(str(len(sci.lexFiles)) + " lexer files: " + ", ".join(sci.lexFiles)) printWrapped(str(len(sci.lexerModules)) + " lexer modules: " + ", ".join(sci.lexerModules)) + print("Lexer name to ID:") + lexNames = sorted(sci.sclexFromName.keys()) + for lexName in lexNames: + sclex = sci.sclexFromName[lexName] + fileName = os.path.basename(sci.fileFromSclex[sclex]) + print(" " + lexName + " -> " + sclex + " in " + fileName) printWrapped("Lexer properties: " + ", ".join(sci.lexerProperties)) print("Lexer property documentation:") documentProperties = list(sci.propertyDocuments.keys()) |