mirror of
https://github.com/adrienverge/yamllint.git
synced 2025-02-25 18:55:20 -06:00
Rules: indentation: Fix check-multi-line-strings
For strings that continue on next line at a lower indentation level: Blaise Pascal: Je vous écris une longue lettre parce que je n'ai pas le temps d'en écrire une courte.
This commit is contained in:
parent
97c446907c
commit
4410bc3e23
@ -507,7 +507,7 @@ class ScalarIndentationTestCase(RuleTestCase):
|
||||
self.check('a key: multi\n'
|
||||
' line\n', conf)
|
||||
self.check('a key: multi\n'
|
||||
' line\n', conf, problem=(2, 3))
|
||||
' line\n', conf)
|
||||
self.check('a key: multi\n'
|
||||
' line\n', conf)
|
||||
self.check('a key:\n'
|
||||
@ -528,6 +528,8 @@ class ScalarIndentationTestCase(RuleTestCase):
|
||||
' line\n', conf, problem=(2, 2))
|
||||
self.check('- multi\n'
|
||||
' line\n', conf, problem=(2, 4))
|
||||
self.check('a key: multi\n'
|
||||
' line\n', conf, problem=(2, 3))
|
||||
self.check('a key: multi\n'
|
||||
' line\n', conf, problem=(2, 9))
|
||||
self.check('a key:\n'
|
||||
@ -546,24 +548,13 @@ class ScalarIndentationTestCase(RuleTestCase):
|
||||
'document-start: disable\n')
|
||||
self.check('"multi\n'
|
||||
' line"\n', conf)
|
||||
self.check('"multi\n'
|
||||
'line"\n', conf, problem=(2, 1))
|
||||
self.check('- "multi\n'
|
||||
' line"\n', conf)
|
||||
self.check('- "multi\n'
|
||||
' line"\n', conf, problem=(2, 3))
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf)
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf, problem=(2, 3))
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf, problem=(2, 8))
|
||||
self.check('a key:\n'
|
||||
' "multi\n'
|
||||
' line"\n', conf)
|
||||
self.check('a key:\n'
|
||||
' "multi\n'
|
||||
' line"\n', conf, problem=(3, 3))
|
||||
self.check('- jinja2: "{% if ansible is defined %}\n'
|
||||
' {{ ansible }}\n'
|
||||
' {% else %}\n'
|
||||
@ -580,11 +571,22 @@ class ScalarIndentationTestCase(RuleTestCase):
|
||||
conf = ('indentation: {spaces: 2, check-multi-line-strings: yes}\n'
|
||||
'document-start: disable\n')
|
||||
self.check('"multi\n'
|
||||
'line"\n', conf, problem=(2, 1))
|
||||
self.check('"multi\n'
|
||||
' line"\n', conf, problem=(2, 3))
|
||||
self.check('- "multi\n'
|
||||
' line"\n', conf, problem=(2, 3))
|
||||
self.check('- "multi\n'
|
||||
' line"\n', conf, problem=(2, 5))
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf, problem=(2, 3))
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf, problem=(2, 8))
|
||||
self.check('a key: "multi\n'
|
||||
' line"\n', conf, problem=(2, 10))
|
||||
self.check('a key:\n'
|
||||
' "multi\n'
|
||||
' line"\n', conf, problem=(3, 3))
|
||||
self.check('a key:\n'
|
||||
' "multi\n'
|
||||
' line"\n', conf, problem=(3, 5))
|
||||
|
@ -113,6 +113,18 @@ Use this rule to control the indentation.
|
||||
Je vous écris une longue lettre parce que
|
||||
je n'ai pas le temps d'en écrire une courte.
|
||||
|
||||
the following code snippet would **PASS**:
|
||||
::
|
||||
|
||||
Blaise Pascal: Je vous écris une longue lettre parce que
|
||||
je n'ai pas le temps d'en écrire une courte.
|
||||
|
||||
the following code snippet would **FAIL**:
|
||||
::
|
||||
|
||||
Blaise Pascal: Je vous écris une longue lettre parce que
|
||||
je n'ai pas le temps d'en écrire une courte.
|
||||
|
||||
the following code snippet would **FAIL**:
|
||||
::
|
||||
|
||||
@ -212,11 +224,7 @@ def check_scalar_indentation(conf, token, context):
|
||||
if token.start_mark.buffer[line_start + indent] == '\n':
|
||||
continue
|
||||
|
||||
if indent < expected_indent:
|
||||
yield LintProblem(line_no, indent + 1,
|
||||
('wrong indentation: expected at least %d but '
|
||||
'found %d') % (expected_indent, indent))
|
||||
elif conf['check-multi-line-strings'] and indent > expected_indent:
|
||||
if indent != expected_indent:
|
||||
yield LintProblem(line_no, indent + 1,
|
||||
'wrong indentation: expected %d but found %d' %
|
||||
(expected_indent, indent))
|
||||
@ -252,7 +260,8 @@ def check(conf, token, prev, next, context):
|
||||
'wrong indentation: expected %d but found %d' %
|
||||
(expected, found_indentation))
|
||||
|
||||
if isinstance(token, yaml.ScalarToken):
|
||||
if (isinstance(token, yaml.ScalarToken) and
|
||||
conf['check-multi-line-strings']):
|
||||
for problem in check_scalar_indentation(conf, token, context):
|
||||
yield problem
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user