[DEV] better display
This commit is contained in:
parent
7d217467dc
commit
5e80692aa8
@ -48,7 +48,7 @@ def transcode(value):
|
|||||||
value,
|
value,
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
|
|
||||||
value = re.sub(r'\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]',
|
value = re.sub(r'\[color=(\(#[0-9A-F]{6}|[a-z\-]+|.+?)\](.*?)\[/color\]',
|
||||||
r'<span style="color: \1;">\2</span>',
|
r'<span style="color: \1;">\2</span>',
|
||||||
value,
|
value,
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
@ -83,6 +83,11 @@ def transcode(value):
|
|||||||
value,
|
value,
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
|
|
||||||
|
value = re.sub(r'\[pre\]((\\\[|\\\]|.)*?)\[/pre\]',
|
||||||
|
r'<br/><pre>\1</pre>',
|
||||||
|
value,
|
||||||
|
flags=re.DOTALL)
|
||||||
|
|
||||||
value = re.sub(r'\[note\](.*?)\[/note\]',
|
value = re.sub(r'\[note\](.*?)\[/note\]',
|
||||||
r'<br/><b>Note:</b><pre>\1</pre>',
|
r'<br/><b>Note:</b><pre>\1</pre>',
|
||||||
value,
|
value,
|
||||||
|
189
monkHtml.py
189
monkHtml.py
@ -36,8 +36,9 @@ def display_doxygen_param(comment, input, output):
|
|||||||
|
|
||||||
|
|
||||||
def parse_doxygen(data) :
|
def parse_doxygen(data) :
|
||||||
|
data = "\n" + data
|
||||||
if '@' in data:
|
if '@' in data:
|
||||||
streams = data.split("@")
|
streams = data.split("\n@")
|
||||||
else:
|
else:
|
||||||
streams = [ "brief " + data]
|
streams = [ "brief " + data]
|
||||||
data2 = ''
|
data2 = ''
|
||||||
@ -66,7 +67,7 @@ def parse_doxygen(data) :
|
|||||||
if element[:1] == "\n" \
|
if element[:1] == "\n" \
|
||||||
or element[:2] == "\n\n":
|
or element[:2] == "\n\n":
|
||||||
# nothing to do : Nomale case of the first \n
|
# nothing to do : Nomale case of the first \n
|
||||||
None
|
pass
|
||||||
elif element[:14] == "param[in,out] " \
|
elif element[:14] == "param[in,out] " \
|
||||||
or element[:14] == "param[out,in] ":
|
or element[:14] == "param[out,in] ":
|
||||||
data3 += display_doxygen_param(element[14:], True, True)
|
data3 += display_doxygen_param(element[14:], True, True)
|
||||||
@ -139,9 +140,13 @@ def calculate_methode_size(list):
|
|||||||
methodeSize = 0;
|
methodeSize = 0;
|
||||||
haveVirtual = False
|
haveVirtual = False
|
||||||
for element in list:
|
for element in list:
|
||||||
if element['node'].get_virtual() == True:
|
if element['node'].get_node_type() == 'methode' \
|
||||||
|
and element['node'].get_virtual() == True:
|
||||||
haveVirtual = True
|
haveVirtual = True
|
||||||
retType = element['node'].get_return_type().to_str()
|
if element['node'].get_node_type() == 'variable':
|
||||||
|
retType = element['node'].get_type().to_str()
|
||||||
|
else:
|
||||||
|
retType = element['node'].get_return_type().to_str()
|
||||||
tmpLen = len(retType)
|
tmpLen = len(retType)
|
||||||
if returnSize < tmpLen:
|
if returnSize < tmpLen:
|
||||||
returnSize = tmpLen
|
returnSize = tmpLen
|
||||||
@ -153,13 +158,14 @@ def calculate_methode_size(list):
|
|||||||
|
|
||||||
def write_methode(element, namespaceStack, displaySize = None, link = True):
|
def write_methode(element, namespaceStack, displaySize = None, link = True):
|
||||||
if element['node'].get_request_hidden() == True:
|
if element['node'].get_request_hidden() == True:
|
||||||
return
|
return ""
|
||||||
if displaySize == None:
|
if displaySize == None:
|
||||||
displaySize = calculate_methode_size([element])
|
displaySize = calculate_methode_size([element])
|
||||||
ret = ""
|
ret = ""
|
||||||
if 'access' in element.keys():
|
if 'access' in element.keys():
|
||||||
if element['access'] == 'private':
|
if element['access'] == 'private':
|
||||||
ret += '- '
|
ret += '- '
|
||||||
|
return ""
|
||||||
elif element['access'] == 'protected':
|
elif element['access'] == 'protected':
|
||||||
ret += '# '
|
ret += '# '
|
||||||
elif element['access'] == 'public':
|
elif element['access'] == 'public':
|
||||||
@ -169,45 +175,59 @@ def write_methode(element, namespaceStack, displaySize = None, link = True):
|
|||||||
else:
|
else:
|
||||||
ret += ' '
|
ret += ' '
|
||||||
|
|
||||||
if element['node'].get_virtual() == True:
|
if element['node'].get_node_type() == 'variable':
|
||||||
ret += module.display_color('virtual') + ' '
|
if displaySize[2] == True:
|
||||||
elif displaySize[2] == True:
|
ret += ' '
|
||||||
ret += ' '
|
raw, decorated = element['node'].get_type().to_str_decorated()
|
||||||
|
else:
|
||||||
raw, decorated = element['node'].get_return_type().to_str_decorated()
|
if element['node'].get_virtual() == True:
|
||||||
|
ret += module.display_color('virtual') + ' '
|
||||||
|
elif displaySize[2] == True:
|
||||||
|
ret += ' '
|
||||||
|
|
||||||
|
raw, decorated = element['node'].get_return_type().to_str_decorated()
|
||||||
if raw != "":
|
if raw != "":
|
||||||
ret += decorated
|
ret += decorated
|
||||||
ret += " "
|
ret += " "
|
||||||
raw += " "
|
raw += " "
|
||||||
|
|
||||||
ret += white_space(displaySize[0] - len(raw)+1)
|
ret += white_space(displaySize[0] - len(raw)+1)
|
||||||
name = element['node'].get_name()
|
name = element['node'].get_name()
|
||||||
if link == True:
|
|
||||||
ret += '<a class="code-function" href="#' + str(element['node'].get_uid()) + '">' + name + '</a>'
|
|
||||||
else:
|
|
||||||
ret += '<span class="code-function">' + name + '</span>'
|
|
||||||
ret += white_space(displaySize[1] - len(name)) + ' ('
|
|
||||||
listParam = element['node'].get_param()
|
|
||||||
first = True
|
|
||||||
for param in listParam:
|
|
||||||
if first == False:
|
|
||||||
ret += ',<br/>'
|
|
||||||
if displaySize[2] == True:
|
|
||||||
ret += ' '
|
|
||||||
ret += white_space(displaySize[0] + displaySize[1] +5)
|
|
||||||
first = False
|
|
||||||
typeNoDecoration, typeDecorated = param.get_type().to_str_decorated()
|
|
||||||
#retParam = module.display_color(param.get_type().to_str())
|
|
||||||
retParam = typeDecorated
|
|
||||||
if retParam != "":
|
|
||||||
ret += retParam
|
|
||||||
ret += " "
|
|
||||||
ret += "<span class=\"code-argument\">" + param.get_name() + "</span>"
|
|
||||||
ret += ')'
|
|
||||||
if element['node'].get_virtual_pure() == True:
|
|
||||||
ret += ' = 0'
|
|
||||||
if element['node'].get_constant() == True:
|
|
||||||
ret += module.display_color(' const')
|
|
||||||
|
|
||||||
|
if element['node'].get_node_type() == 'variable':
|
||||||
|
classDecoration = "code-member"
|
||||||
|
else:
|
||||||
|
classDecoration = "code-function"
|
||||||
|
|
||||||
|
if link == True:
|
||||||
|
ret += '<a class="' + classDecoration + '" href="#' + str(element['node'].get_uid()) + '">' + name + '</a>'
|
||||||
|
else:
|
||||||
|
ret += '<span class="' + classDecoration + '">' + name + '</span>'
|
||||||
|
|
||||||
|
if element['node'].get_node_type() != 'variable':
|
||||||
|
ret += white_space(displaySize[1] - len(name)) + ' ('
|
||||||
|
listParam = element['node'].get_param()
|
||||||
|
first = True
|
||||||
|
for param in listParam:
|
||||||
|
if first == False:
|
||||||
|
ret += ',<br/>'
|
||||||
|
if displaySize[2] == True:
|
||||||
|
ret += ' '
|
||||||
|
ret += white_space(displaySize[0] + displaySize[1] +5)
|
||||||
|
first = False
|
||||||
|
typeNoDecoration, typeDecorated = param.get_type().to_str_decorated()
|
||||||
|
#retParam = module.display_color(param.get_type().to_str())
|
||||||
|
retParam = typeDecorated
|
||||||
|
if retParam != "":
|
||||||
|
ret += retParam
|
||||||
|
ret += " "
|
||||||
|
ret += "<span class=\"code-argument\">" + param.get_name() + "</span>"
|
||||||
|
ret += ')'
|
||||||
|
if element['node'].get_virtual_pure() == True:
|
||||||
|
ret += ' = 0'
|
||||||
|
if element['node'].get_constant() == True:
|
||||||
|
ret += module.display_color(' const')
|
||||||
|
|
||||||
ret += ';'
|
ret += ';'
|
||||||
ret += '<br/>'
|
ret += '<br/>'
|
||||||
return ret
|
return ret
|
||||||
@ -246,49 +266,97 @@ def generate_page(outFolder, header, footer, element):
|
|||||||
file.write(documentation)
|
file.write(documentation)
|
||||||
file.write('<br/>\n')
|
file.write('<br/>\n')
|
||||||
|
|
||||||
|
if element.get_node_type() in ['namespace']:
|
||||||
|
tmpName = element.get_name()
|
||||||
|
tmpNameUpper = tmpName.upper()
|
||||||
|
tmpName = tmpNameUpper[0] + tmpName[1:]
|
||||||
|
compleateName = ""
|
||||||
|
for namespace in element.get_namespace():
|
||||||
|
compleateName += namespace + "::"
|
||||||
|
compleateName += tmpName
|
||||||
|
associatedClass = module.get_element_with_name(compleateName)
|
||||||
|
if associatedClass != None:
|
||||||
|
file.write('<h2>Associated Class:</h2>');
|
||||||
|
file.write('<ul>\n');
|
||||||
|
file.write(generate_link(associatedClass));
|
||||||
|
file.write('</ul>\n');
|
||||||
|
|
||||||
|
if element.get_node_type() in ['class']:
|
||||||
|
tmpName = element.get_name()
|
||||||
|
tmpNameLower = tmpName.lower()
|
||||||
|
tmpName = tmpNameLower[0] + tmpName[1:]
|
||||||
|
compleateName = ""
|
||||||
|
for namespace in element.get_namespace():
|
||||||
|
compleateName += namespace + "::"
|
||||||
|
compleateName += tmpName
|
||||||
|
associatedClass = module.get_element_with_name(compleateName)
|
||||||
|
if associatedClass != None:
|
||||||
|
file.write('<h2>Associated Namespace:</h2>');
|
||||||
|
file.write('<ul>\n');
|
||||||
|
file.write(generate_link(associatedClass));
|
||||||
|
file.write('</ul>\n');
|
||||||
|
|
||||||
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
|
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
|
||||||
for nameElement in ['namespace', 'class', 'struct', 'enum', 'union']:
|
for nameElement in ['namespace', 'class', 'struct', 'enum', 'union']:
|
||||||
listBase = element.get_all_sub_type(nameElement)
|
listBase = element.get_all_sub_type(nameElement)
|
||||||
if len(listBase) == 0:
|
if len(listBase) == 0:
|
||||||
continue
|
continue
|
||||||
file.write('<h2>' + nameElement + ':</h2>\n');
|
descLocal = ""
|
||||||
file.write('<ul>\n');
|
|
||||||
for elem in listBase:
|
for elem in listBase:
|
||||||
file.write('<li>' + generate_link(elem['node']) + '</li>')
|
if elem['node'].get_request_hidden() == True:
|
||||||
file.write('</ul>\n');
|
continue
|
||||||
|
if 'access' in elem.keys() \
|
||||||
|
and elem['access'] == 'private':
|
||||||
|
continue
|
||||||
|
descLocal += '<li>' + generate_link(elem['node']) + '</li>'
|
||||||
|
if descLocal != "":
|
||||||
|
file.write('<h2>' + nameElement + ':</h2>\n');
|
||||||
|
file.write('<ul>\n');
|
||||||
|
file.write(descLocal)
|
||||||
|
file.write('</ul>\n');
|
||||||
|
|
||||||
# calculate element size :
|
# calculate element size :
|
||||||
listBase = element.get_all_sub_type(['methode', 'constructor', 'destructor'])
|
listBase = element.get_all_sub_type(['methode', 'constructor', 'destructor', 'variable'])
|
||||||
displayLen = calculate_methode_size(listBase)
|
displayLen = calculate_methode_size(listBase)
|
||||||
|
|
||||||
if element.get_node_type() == 'class' \
|
if element.get_node_type() == 'class' \
|
||||||
or element.get_node_type() == 'struct':
|
or element.get_node_type() == 'struct':
|
||||||
|
|
||||||
if len(element.get_all_sub_type(['constructor', 'destructor'])) != 0:
|
if len(element.get_all_sub_type(['constructor', 'destructor'])) != 0:
|
||||||
file.write('<h2>Constructor and Destructor:</h2>\n')
|
globalWrite = ""
|
||||||
file.write('<pre>\n');
|
|
||||||
listBaseConstructor = element.get_all_sub_type(['constructor'])
|
listBaseConstructor = element.get_all_sub_type(['constructor'])
|
||||||
for elem in listBaseConstructor:
|
for elem in listBaseConstructor:
|
||||||
ret = write_methode(elem, namespaceStack, displayLen)
|
if elem['access'] == 'private':
|
||||||
file.write(ret)
|
continue
|
||||||
|
globalWrite += write_methode(elem, namespaceStack, displayLen)
|
||||||
listBaseDestructor = element.get_all_sub_type(['destructor'])
|
listBaseDestructor = element.get_all_sub_type(['destructor'])
|
||||||
for elem in listBaseDestructor:
|
for elem in listBaseDestructor:
|
||||||
ret = write_methode(elem, namespaceStack, displayLen)
|
if elem['access'] == 'private':
|
||||||
file.write(ret)
|
continue
|
||||||
file.write('</pre>\n');
|
globalWrite += write_methode(elem, namespaceStack, displayLen)
|
||||||
file.write('<br/>\n')
|
if globalWrite != "":
|
||||||
|
file.write('<h2>Constructor and Destructor:</h2>\n')
|
||||||
|
file.write('<pre>\n');
|
||||||
|
file.write(globalWrite);
|
||||||
|
file.write('</pre>\n');
|
||||||
|
file.write('<br/>\n')
|
||||||
|
|
||||||
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
|
if element.get_node_type() in ['library', 'application', 'namespace', 'class', 'struct']:
|
||||||
listBaseMethode = element.get_all_sub_type(['methode'])
|
listBaseMethode = element.get_all_sub_type(['methode', 'variable'])
|
||||||
if len(listBaseMethode) != 0:
|
if len(listBaseMethode) != 0:
|
||||||
file.write('<h2>Synopsis:</h2>\n')
|
globalWrite = ""
|
||||||
file.write('<pre>\n');
|
|
||||||
displayLen = calculate_methode_size(listBaseMethode)
|
displayLen = calculate_methode_size(listBaseMethode)
|
||||||
for elem in listBaseMethode:
|
for elem in listBaseMethode:
|
||||||
ret = write_methode(elem, namespaceStack, displayLen)
|
if 'access' in elem.keys() \
|
||||||
file.write(ret)
|
and elem['access'] == 'private':
|
||||||
file.write('</pre>\n')
|
continue
|
||||||
file.write('<br/>\n')
|
globalWrite += write_methode(elem, namespaceStack, displayLen)
|
||||||
|
if globalWrite != "":
|
||||||
|
file.write('<h2>Synopsis:</h2>\n')
|
||||||
|
file.write('<pre>\n');
|
||||||
|
file.write(globalWrite);
|
||||||
|
file.write('</pre>\n')
|
||||||
|
file.write('<br/>\n')
|
||||||
|
|
||||||
# generate herirage list :
|
# generate herirage list :
|
||||||
if element.get_node_type() == 'class':
|
if element.get_node_type() == 'class':
|
||||||
@ -359,6 +427,11 @@ def generate_page(outFolder, header, footer, element):
|
|||||||
allDetailDoc = ""
|
allDetailDoc = ""
|
||||||
lastDoc = ""
|
lastDoc = ""
|
||||||
for subElement in listBase:
|
for subElement in listBase:
|
||||||
|
if subElement['node'].get_request_hidden() == True:
|
||||||
|
continue
|
||||||
|
if 'access' in subElement.keys() \
|
||||||
|
and subElement['access'] == 'private':
|
||||||
|
continue
|
||||||
file.write('<a id="' + str(subElement['node'].get_uid()) + '"/>')
|
file.write('<a id="' + str(subElement['node'].get_uid()) + '"/>')
|
||||||
if lastDoc != "" \
|
if lastDoc != "" \
|
||||||
and subElement['node'].get_request_in_previous() == True:
|
and subElement['node'].get_request_in_previous() == True:
|
||||||
|
@ -302,6 +302,9 @@ class parse_file():
|
|||||||
self.nameStack.append(",")
|
self.nameStack.append(",")
|
||||||
else:
|
else:
|
||||||
self.nameStack.append("//!< " + tok.value)
|
self.nameStack.append("//!< " + tok.value)
|
||||||
|
elif self.previous != None \
|
||||||
|
and self.previous.get_node_type() == 'variable':
|
||||||
|
self.previous.add_doc([tok.value])
|
||||||
else:
|
else:
|
||||||
#self.lastComment.append(tok.value)
|
#self.lastComment.append(tok.value)
|
||||||
pass
|
pass
|
||||||
@ -336,6 +339,7 @@ class parse_file():
|
|||||||
self.brace_type_push('unknow', self.nameStack)
|
self.brace_type_push('unknow', self.nameStack)
|
||||||
self.stack = []
|
self.stack = []
|
||||||
self.nameStack = []
|
self.nameStack = []
|
||||||
|
self.lastComment = []
|
||||||
elif tok.type == 'CLOSE_BRACE':
|
elif tok.type == 'CLOSE_BRACE':
|
||||||
if len(self.nameStack) != 0:
|
if len(self.nameStack) != 0:
|
||||||
if self.previous_is('enum') == True:
|
if self.previous_is('enum') == True:
|
||||||
@ -415,7 +419,7 @@ class parse_file():
|
|||||||
else:
|
else:
|
||||||
# TODO : Check if it is true in all case :
|
# TODO : Check if it is true in all case :
|
||||||
self.brace_type_append('variable', self.nameStack);
|
self.brace_type_append('variable', self.nameStack);
|
||||||
#debug.warning(self.gen_debug_space() + "semicolumn : " + str(self.nameStack));
|
#debug.warning(self.gen_debug_space() + "variable : " + str(self.nameStack));
|
||||||
self.stack = []
|
self.stack = []
|
||||||
self.nameStack = []
|
self.nameStack = []
|
||||||
self.lastComment = []
|
self.lastComment = []
|
||||||
@ -427,6 +431,7 @@ class parse_file():
|
|||||||
|
|
||||||
def create_element(self, type, stack):
|
def create_element(self, type, stack):
|
||||||
ret = None
|
ret = None
|
||||||
|
self.previous = None
|
||||||
if type == 'empty' \
|
if type == 'empty' \
|
||||||
or type == 'enum list':
|
or type == 'enum list':
|
||||||
pass
|
pass
|
||||||
@ -452,6 +457,7 @@ class parse_file():
|
|||||||
ret = Enum.Enum(stack, self.headerFileName, self.curLine, self.lastComment)
|
ret = Enum.Enum(stack, self.headerFileName, self.curLine, self.lastComment)
|
||||||
elif type == 'variable':
|
elif type == 'variable':
|
||||||
ret = Variable.Variable(stack, self.headerFileName, self.curLine, self.lastComment)
|
ret = Variable.Variable(stack, self.headerFileName, self.curLine, self.lastComment)
|
||||||
|
self.previous = ret
|
||||||
else:
|
else:
|
||||||
debug.error("unknow type ...")
|
debug.error("unknow type ...")
|
||||||
return ret
|
return ret
|
||||||
|
Loading…
x
Reference in New Issue
Block a user