Skip to content

Commit

Permalink
fix(docs): remove newlines interpreted as test
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Byron committed Mar 23, 2015
1 parent e5b013e commit d1c5bf1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/mako/lib/rbuild.mako
Original file line number Diff line number Diff line change
Expand Up @@ -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"/>\
Expand Down Expand Up @@ -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} {
Expand Down
4 changes: 4 additions & 0 deletions src/mako/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@ def unindent_inner(s):
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):
Expand Down

0 comments on commit d1c5bf1

Please sign in to comment.