⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hfacer.py

📁 porting scintilla to qt
💻 PY
字号:
# HFacer.py - regenerate the Scintilla.h and SciLexer.h files from the Scintilla.iface interface# definition file.# The header files are copied to a temporary file apart from the section between a //++Autogenerated# comment and a //--Autogenerated comment which is generated by the printHFile and printLexHFile# functions. After the temporary file is created, it is copied back to the original file name.import stringimport sysimport osimport Facedef Contains(s,sub):	return string.find(s, sub) != -1def printLexHFile(f,out):	for name in f.order:		v = f.features[name]		if v["FeatureType"] in ["val"]:			if Contains(name, "SCE_") or Contains(name, "SCLEX_"):				out.write("#define " + name + " " + v["Value"] + "\n")def printHFile(f,out):	for name in f.order:		v = f.features[name]		if v["Category"] != "Deprecated":			if v["FeatureType"] in ["fun", "get", "set"]:				featureDefineName = "SCI_" + string.upper(name)				out.write("#define " + featureDefineName + " " + v["Value"] + "\n")			elif v["FeatureType"] in ["evt"]:				featureDefineName = "SCN_" + string.upper(name)				out.write("#define " + featureDefineName + " " + v["Value"] + "\n")			elif v["FeatureType"] in ["val"]:				if not (Contains(name, "SCE_") or Contains(name, "SCLEX_")):					out.write("#define " + name + " " + v["Value"] + "\n")def CopyWithInsertion(input, output, genfn, definition):	copying = 1	for line in input.readlines():		if copying:			output.write(line)		if Contains(line, "//++Autogenerated"):			copying = 0			genfn(definition, output)		if Contains(line, "//--Autogenerated"):			copying = 1			output.write(line)def contents(filename):	f = file(filename)	t = f.read()	f.close()	return tdef Regenerate(filename, genfn, definition):	inText = contents(filename)	tempname = "HFacer.tmp"	out = open(tempname,"w")	hfile = open(filename)	CopyWithInsertion(hfile, out, genfn, definition)	out.close()	hfile.close()	outText = contents(tempname)	if inText == outText:		os.unlink(tempname)	else:		os.unlink(filename)		os.rename(tempname, filename)f = Face.Face()try:	f.ReadFromFile("Scintilla.iface")	Regenerate("Scintilla.h", printHFile, f)	Regenerate("SciLexer.h", printLexHFile, f)	print "Maximum ID is", max([x for x in f.values if int(x) < 3000])except:	raise

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -