mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 07:16:09 +00:00
clint: Enable check for {
positioned at the start of the line correctly
For some reason that was incorrectly hidden by “file is *not* \*.c or \*.h file” check.
This commit is contained in:
31
src/clint.py
31
src/clint.py
@@ -2560,22 +2560,21 @@ def CheckBraces(filename, clean_lines, linenum, error):
|
|||||||
|
|
||||||
line = clean_lines.elided[linenum] # get rid of comments and strings
|
line = clean_lines.elided[linenum] # get rid of comments and strings
|
||||||
|
|
||||||
if not (filename.endswith('.c') or filename.endswith('.h')):
|
if Match(r'\s+{\s*$', line):
|
||||||
if Match(r'\s*{\s*$', line):
|
# We allow an open brace to start a line in the case where someone
|
||||||
# We allow an open brace to start a line in the case where someone
|
# is using braces in a block to explicitly create a new scope, which
|
||||||
# is using braces in a block to explicitly create a new scope, which
|
# is commonly used to control the lifetime of stack-allocated
|
||||||
# is commonly used to control the lifetime of stack-allocated
|
# variables. Braces are also used for brace initializers inside
|
||||||
# variables. Braces are also used for brace initializers inside
|
# function calls. We don't detect this perfectly: we just don't
|
||||||
# function calls. We don't detect this perfectly: we just don't
|
# complain if the last non-whitespace character on the previous
|
||||||
# complain if the last non-whitespace character on the previous
|
# non-blank line is ',', ';', ':', '(', '{', or '}', or if the
|
||||||
# non-blank line is ',', ';', ':', '(', '{', or '}', or if the
|
# previous line starts a preprocessor block.
|
||||||
# previous line starts a preprocessor block.
|
prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0]
|
||||||
prevline = GetPreviousNonBlankLine(clean_lines, linenum)[0]
|
if (not Search(r'[,;:}{(]\s*$', prevline) and
|
||||||
if (not Search(r'[,;:}{(]\s*$', prevline) and
|
not Match(r'\s*#', prevline)):
|
||||||
not Match(r'\s*#', prevline)):
|
error(filename, linenum, 'whitespace/braces', 4,
|
||||||
error(filename, linenum, 'whitespace/braces', 4,
|
'{ should almost always be at the end'
|
||||||
'{ should almost always be at the end'
|
' of the previous line')
|
||||||
' of the previous line')
|
|
||||||
|
|
||||||
# An else clause should be on the same line as the preceding closing brace.
|
# An else clause should be on the same line as the preceding closing brace.
|
||||||
# If there is no preceding closing brace, there should be one.
|
# If there is no preceding closing brace, there should be one.
|
||||||
|
Reference in New Issue
Block a user