diff --git a/tests/rules/test_line_length.py b/tests/rules/test_line_length.py index d63afb3..fc3f0e8 100644 --- a/tests/rules/test_line_length.py +++ b/tests/rules/test_line_length.py @@ -116,6 +116,16 @@ class LineLengthTestCase(RuleTestCase): 'long_line: http://localhost/very/very/long/url\n' '...\n', conf, problem=(2, 21)) + conf = 'line-length: {max: 20, allow-non-breakable-words: true}' + self.check('---\n' + '# http://www.verylongurlurlurlurlurlurlurlurl.com\n' + 'key:\n' + ' value:\n', conf) + self.check('---\n' + '## http://www.verylongurlurlurlurlurlurlurlurl.com\n' + 'key:\n' + ' value:\n', conf) + conf = ('line-length: {max: 20, allow-non-breakable-words: true}\n' 'trailing-spaces: disable') self.check('---\n' diff --git a/yamllint/rules/line_length.py b/yamllint/rules/line_length.py index 0431240..0289747 100644 --- a/yamllint/rules/line_length.py +++ b/yamllint/rules/line_length.py @@ -140,7 +140,11 @@ def check(conf, line): start += 1 if start != line.end: - if line.buffer[start] in ('#', '-'): + if line.buffer[start] in ('#'): + idx = line.buffer.find(' ', start, line.end) + if idx != -1: + start = idx + 1 + elif line.buffer[start] in ('-'): start += 2 if line.buffer.find(' ', start, line.end) == -1: