Exemple #1
0
def cppAlias(s):
    if s in typeAliases:
        return typeAliases[s]
    elif Face.IsEnumeration(s):
        return "int"
    else:
        return s
Exemple #2
0
def convertIFaceTypeToC(t):
    if t == "keymod":
        return "int "
    elif t == "string":
        return "const char *"
    elif t == "stringresult":
        return "char *"
    elif t == "cells":
        return "cell *"
    elif t == "textrange":
        return "Sci_TextRange *"
    elif t == "findtext":
        return "Sci_TextToFind *"
    elif t == "formatrange":
        return "Sci_RangeToFormat *"
    elif Face.IsEnumeration(t):
        return "int "
    return t + " "
def makeSig(params):
	p1 = makeParm(params["Param1Type"], params["Param1Name"], params["Param1Value"])
	p2 = makeParm(params["Param2Type"], params["Param2Name"], params["Param2Value"])

	retType = params["ReturnType"]
	if retType in ["void", "string", "stringresult"]:
		retType = ""
	elif Face.IsEnumeration(retType):
		retType = "int"
	if retType:
		retType = " → " + retType

	if p1 == "" and p2 == "":
		return retType

	if p1 == "":
		p1 = "<unused>"
	joiner = ""
	if p2 != "":
		joiner = ", "
	return "(" + p1 + joiner + p2 + ")" + retType
def ConvertEnu(t):
	if Face.IsEnumeration(t):
		return "int"
	else:
		return t
def printIFaceTableHTMLFile(faceAndIDs):
	out = []
	f, ids, idsInOrder = faceAndIDs
	(constants, functions, properties) = GetScriptableInterface(f)
	explanations = {}
	for name, features in functions:
		featureDefineName = "SCI_" + name.upper()
		explanation = ""
		href = ""
		hrefEnd = ""
		href = "<a href='https://www.scintilla.org/ScintillaDoc.html#" + featureDefineName + "'>"
		hrefEnd = "</a>"

		if features['Param1Type'] in nonScriptableTypes or features['Param2Type'] in nonScriptableTypes:
			#~ print(name, features)
			continue

		parameters = ""
		stringresult = ""
		if features['Param2Type'] == "stringresult":
			stringresult = "string "
			if features['Param1Name'] and features['Param1Name'] != "length":
				parameters += features['Param1Type'] + " " + features['Param1Name']
		else:
			if features['Param1Name']:
				parameters += ConvertEnu(features['Param1Type']) + " " + features['Param1Name']
				if features['Param1Name'] == "length" and features['Param2Type'] == "string":
					# special case removal
					parameters = ""
			if features['Param2Name']:
				if parameters:
					parameters += ", "
				parameters += ConvertEnu(features['Param2Type']) + " " + features['Param2Name']

		returnType = stringresult
		if not returnType and Face.IsEnumeration(features["ReturnType"]):
			returnType = "int "
		if not returnType and features["ReturnType"] != "void":
			returnType = convertStringResult(features["ReturnType"]) + " "

		explanation += '%seditor:%s%s%s(%s)' % (
			returnType,
			href,
			name,
			hrefEnd,
			parameters
		)
		if features["Comment"]:
			explanation += '<span class="comment">%s</span>' % CommentString(features)

		explanations[featureDefineName] = explanation

	for propname, property in properties:
		functionName = property['SetterName'] or property['GetterName']
		featureDefineName = "SCI_" + functionName.upper()
		explanation = ""
		href = "<a href='https://www.scintilla.org/ScintillaDoc.html#" + featureDefineName + "'>"
		hrefEnd = "</a>"

		direction = ""
		if not property['SetterName']:
			direction = " read-only"
		if not property['GetterName']:
			direction = " write-only"
		indexExpression = ""
		if property["IndexParamType"] != "void":
			indexExpression = "[" + property["IndexParamType"] + " " + property["IndexParamName"] + "]"

		explanation += '%s editor.%s%s%s%s%s' % (
			convertStringResult(property["PropertyType"]),
			href,
			propname,
			hrefEnd,
			indexExpression,
			direction
		)
		if property["SetterComment"]:
			explanation += '<span class="comment">%s</span>' % (property["SetterComment"].replace("<", "&lt;"))
		explanations[featureDefineName] = explanation

	lastSegment = ""
	for segment, featureId in idsInOrder:
		if featureId in explanations:
			if segment != lastSegment:
				out.append('\t<h2>' + segment + '</h2>')
				lastSegment = segment
			out.append('\t<p>' + explanations[featureId] + '</p>')
	out.append("")
	return out
Exemple #6
0
def understoodType(t):
    return t in understoodTypes or Face.IsEnumeration(t)