fix(docs): remove newlines interpreted as test

When documenting mandatory arguments of a methods builder, it was
possible to document 'parts', which have a long multi-line description
with empty lines inbetween. This caused the indentation to be funny
and tricked rustdoc into thinking these are indented doc-tests.

Now we remove these empty lines, also hoping we dont encounter lines
with just whitespace in them. The latter would require a tiny update
of our regex.
This commit is contained in:
Sebastian Thiel
2015-03-23 15:14:07 +01:00
parent e5b013e97c
commit d1c5bf1e4a
2 changed files with 6 additions and 2 deletions

View File

@@ -6,7 +6,7 @@
rust_copy_value_s, is_required_property, organize_params, REQUEST_VALUE_PROPERTY_NAME,
build_all_params, rb_type_params_s, hub_type_params_s, mb_type_params_s, mb_additional_type_params,
struct_type_bounds_s, METHODS_RESOURCE, SPACES_PER_TAB, prefix_all_but_first_with,
METHODS_BUILDER_MARKER_TRAIT)
METHODS_BUILDER_MARKER_TRAIT, remove_empty_lines)
%>\
<%namespace name="util" file="util.mako"/>\
<%namespace name="lib" file="lib.mako"/>\
@@ -91,7 +91,7 @@ impl${rb_params} ${ThisType} {
arg_prefix = "/// * `" + p.name + "` - "
%>\
${arg_prefix}${p.get('description', "No description provided.")
| prefix_all_but_first_with(' ' * SPACES_PER_TAB + '///' + ' ' * (len(arg_prefix) - len('///')))}
| remove_empty_lines, prefix_all_but_first_with(' ' * SPACES_PER_TAB + '///' + ' ' * (len(arg_prefix) - len('///')))}
% endfor
% endif
pub fn ${mangle_ident(a)}${type_params}(&self${method_args}) -> ${RType}${mb_tparams} {

View File

@@ -150,6 +150,10 @@ def unindent_first_by(tabs):
return re_linestart.sub(' ' * tabs * SPACES_PER_TAB, s)
return unindent_inner
# filter to remove empty lines from a string
def remove_empty_lines(s):
return re.sub("^\n", '', s, flags=re.MULTILINE)
# Prepend prefix to each line but the first
def prefix_all_but_first_with(prefix):
def indent_inner(s):