2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-22 05:22:45 +00:00

epydoc friendlier formatting

[SVN r39368]
This commit is contained in:
Nikolay Mladenov
2007-09-18 17:16:31 +00:00
parent 62ef542eaf
commit 8cfd3fb2ef
2 changed files with 35 additions and 16 deletions

View File

@@ -264,8 +264,8 @@ namespace boost { namespace python { namespace objects {
}
namespace detail {
char py_signature_tag[] = "PY signature : ";
char cpp_signature_tag[] = "C++ signature:";
char py_signature_tag[] = "PY signature :";
char cpp_signature_tag[] = "C++ signature :";
}
list function_doc_signature_generator::function_doc_signatures( function const * f)
@@ -280,24 +280,43 @@ namespace boost { namespace python { namespace objects {
if(*sfi == *fi){
if((*fi)->doc()){
str func_doc = str((*fi)->doc());
int doc_len = len(func_doc);
int doc_len = len(func_doc);
bool show_py_signature = doc_len >=int(sizeof(detail::py_signature_tag)/sizeof(char)-1)
&& str(detail::py_signature_tag)==func_doc.slice(0, int(sizeof(detail::py_signature_tag)/sizeof(char))-1);
bool show_cpp_signature = doc_len >=int(sizeof(detail::cpp_signature_tag)/sizeof(char))
if(show_py_signature){
func_doc = str(func_doc.slice(int(sizeof(detail::py_signature_tag)/sizeof(char))-1, _));
doc_len = len(func_doc);
}
bool show_cpp_signature = doc_len >=int(sizeof(detail::cpp_signature_tag)/sizeof(char)-1)
&& str(detail::cpp_signature_tag)==func_doc.slice(- int(sizeof(detail::cpp_signature_tag)/sizeof(char))+1, _);
str res;
if(show_cpp_signature){
func_doc = str(func_doc.slice(_, 1 - int(sizeof(detail::cpp_signature_tag)/sizeof(char))));
doc_len = len(func_doc);
}
str res="\n";
str pad = "\n";
if(show_py_signature)
{
str sig = pretty_signature(*fi, n_overloads,false);
res+=sig;
if(doc_len > int(sizeof(detail::py_signature_tag)/sizeof(char))-1 )
res+=" : "+func_doc.slice(int(sizeof(detail::py_signature_tag)/sizeof(char))-1,_);
}else
res+=func_doc;
if(doc_len || show_cpp_signature )res+=" :";
pad+= str(" ");
}
if(doc_len){
if(show_py_signature)
res+=pad;
res+= pad.join(func_doc.split("\n"));
}
if( show_cpp_signature)
res+=str("\n ")+pretty_signature(*fi, n_overloads,true);
if( show_cpp_signature){
if(len(res)>1)
res+="\n"+pad;
res+=detail::cpp_signature_tag+pad+" "+pretty_signature(*fi, n_overloads,true);
}
signatures.append(res);
}