mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-26 14:01:10 +08:00
Update syntax checking
* Line continuation characters should be on the same lines. * .vim file line indentation should be a multiple of 4.
This commit is contained in:
@@ -10,7 +10,7 @@ import re
|
||||
|
||||
INDENTATION_RE = re.compile(r'^ *')
|
||||
COMMENT_LINE_RE = re.compile(r'^ *"')
|
||||
COMMAND_RE = re.compile(r'^ *([a-zA-Z]+)')
|
||||
COMMAND_RE = re.compile(r'^ *([a-zA-Z\\]+)')
|
||||
|
||||
START_BLOCKS = set(['if', 'for', 'while', 'try', 'function'])
|
||||
END_BLOCKS = set(['endif', 'endfor', 'endwhile', 'endtry', 'endfunction'])
|
||||
@@ -21,6 +21,7 @@ WHITESPACE_BEFORE_SET = START_BLOCKS | TERMINATORS
|
||||
WHITESPACE_FORBIDDEN_BEFORE_SET = END_BLOCKS | MIDDLE_BLOCKS
|
||||
WHITESPACE_AFTER_SET = END_BLOCKS
|
||||
WHITESPACE_FORBIDDEN_AFTER_SET = START_BLOCKS | MIDDLE_BLOCKS
|
||||
SAME_INDENTATION_SET = set(['\\'])
|
||||
|
||||
|
||||
def remove_comment_lines(line_iter):
|
||||
@@ -44,7 +45,7 @@ def check_lines(line_iter):
|
||||
):
|
||||
yield (
|
||||
line_number,
|
||||
'Blank line forbidden after `%s`' % (command,)
|
||||
'Blank line forbidden after `%s`' % (previous_command,)
|
||||
)
|
||||
|
||||
previous_line_blank = True
|
||||
@@ -56,6 +57,26 @@ def check_lines(line_iter):
|
||||
if command_match:
|
||||
command = command_match.group(1)
|
||||
|
||||
if (
|
||||
command in SAME_INDENTATION_SET
|
||||
and previous_indentation_level is not None
|
||||
and indentation_level != previous_indentation_level
|
||||
):
|
||||
yield (
|
||||
line_number,
|
||||
'Line continuation should match previous indentation'
|
||||
)
|
||||
|
||||
if (
|
||||
previous_indentation_level is not None
|
||||
and indentation_level != previous_indentation_level
|
||||
and abs(indentation_level - previous_indentation_level) != 4
|
||||
):
|
||||
yield (
|
||||
line_number,
|
||||
'Indentation should be 4 spaces'
|
||||
)
|
||||
|
||||
# Check for commands requiring blank lines before them, if they
|
||||
# aren't at the start of a block.
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user