Skip to content

Commit bd8541b

Browse files
authored
Fix missing carriage return handling for rules moving token to previous line (#1455)
1 parent a595084 commit bd8541b

File tree

17 files changed

+64
-15
lines changed

17 files changed

+64
-15
lines changed

tests/record_type_definition/rule_007_test_input.fixed.vhd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ architecture rtl of fifo is
1313

1414
type t_record is record a : std_logic; b : std_logic; end record;
1515

16+
type my_array1 is array (natural range 0 to 3) of std_logic ; -- white space before semicolon here
17+
1618
begin
1719

1820
end architecture rtl;

tests/record_type_definition/rule_007_test_input.vhd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ architecture rtl of fifo is
1515
type t_record is record a : std_logic; b : std_logic; end record
1616
;
1717

18+
type my_array1 is array (natural range 0 to 3) of std_logic ; -- white space before semicolon here
19+
1820
begin
1921

2022
end architecture rtl;

vsg/rules/constant/rule_007.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ class rule_007(Rule):
3333
def __init__(self):
3434
super().__init__(lTokens)
3535
self.bRemoveTrailingWhitespace = False
36+
self.solution = "Move := operator"

vsg/rules/entity/rule_024.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ def __init__(self):
3333
super().__init__(lTokens)
3434
self.subphase = 2
3535
self.bRemoveTrailingWhitespace = False
36+
self.solution = "Move entity simple name"

vsg/rules/entity/rule_025.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,4 @@ def __init__(self):
3333
super().__init__(lTokens)
3434
self.bInsertWhitespace = False
3535
self.subphase = 3
36+
self.solution = "Move semicolon"

vsg/rules/generic/rule_021.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ class rule_021(Rule):
3434
def __init__(self):
3535
super().__init__(lTokens)
3636
self.bInsertWhitespace = False
37+
self.solution = "Move semicolon"

vsg/rules/if_statement/rule_036.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ class rule_036(Rule):
2727

2828
def __init__(self):
2929
super().__init__(lTokens)
30+
self.solution = "Move **then** keyword"

vsg/rules/instantiation/rule_035.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ class rule_035(Rule):
3434
def __init__(self):
3535
super().__init__(lTokens)
3636
self.bInsertWhitespace = False
37+
self.solution = "Move semicolon"

vsg/rules/move_token_left_to_next_non_whitespace_token.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def _get_tokens_of_interest(self, oFile):
4343
lReturn = []
4444
for oToi in lToi:
4545
lTokens = oToi.get_tokens()
46-
if skip_based_on_whitespace(self.bInsertWhitespace, lTokens):
46+
if self.skip_based_on_whitespace(self.bInsertWhitespace, lTokens):
4747
continue
4848
if oToi.token_type_exists(token.pragma.pragma):
4949
continue
@@ -54,7 +54,7 @@ def _analyze(self, lToi):
5454
for oToi in lToi:
5555
lTokens = oToi.get_tokens()
5656

57-
sSolution = "Move **then** keyword to same line as " + lTokens[0].get_value()
57+
sSolution = self.solution + " to same line as " + lTokens[0].get_value()
5858
oViolation = violation.New(oToi.get_line_number(), oToi, sSolution)
5959
oViolation.set_remap()
6060
oViolation.fix_blank_lines = True
@@ -77,14 +77,12 @@ def _fix_violation(self, oViolation):
7777

7878
oViolation.set_tokens(lNewTokens)
7979

80+
def does_a_whitespace_token_separate_tokens(self, lTokens):
81+
if len(lTokens) == 3 and isinstance(lTokens[1], parser.whitespace):
82+
return True
83+
return False
8084

81-
def does_a_whitespace_token_separate_tokens(lTokens):
82-
if len(lTokens) == 3 and isinstance(lTokens[1], parser.whitespace):
83-
return True
84-
return False
85-
86-
87-
def skip_based_on_whitespace(bInsertWhitespace, lTokens):
88-
if bInsertWhitespace and does_a_whitespace_token_separate_tokens(lTokens):
89-
return True
90-
return False
85+
def skip_based_on_whitespace(self, bInsertWhitespace, lTokens):
86+
if bInsertWhitespace and self.does_a_whitespace_token_separate_tokens(lTokens):
87+
return True
88+
return False

vsg/rules/port/rule_027.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@ class rule_027(Rule):
3434
def __init__(self):
3535
super().__init__(lTokens)
3636
self.bInsertWhitespace = False
37+
self.solution = "Move semicolon"

0 commit comments

Comments
 (0)