Remillard / VHDL-Mode

A package for Sublime Text that aids coding in the VHDL language.
MIT License
40 stars 10 forks source link

Beautify throws exception when encountering single line procedure parameters #155

Open Remillard opened 4 years ago

Remillard commented 4 years ago

Something like:

procedure check_val (expected : in std_logic_vector; actual : in std_logic_vector; file out_stream : text; debug : in boolean := TRUE ) is

will throw an exception the SECOND time it's encountered in a file.

Example:

93: ci=1 ni=1 : procedure check_val (expected : in std_logic_vector; actual : in std_logic_vector; file out_stream : text; debug : in boolean := TRUE ) is
93: Evaluation line: procedure check_val (expected : in std_logic_vector; actual : in std_logic_vector; file out_stream : text; debug : in boolean := TRUE ) is
93: Evaluation pattern: ^(?<!end )\bprocedure\b
93: Type: procedure
93: Ignore Rules: ['block-comment']
93: Parens After Scan #(=0, #)=0, OPos=[], CPos=[]
93: Closing stack depth=1 top=procedure indent=1 parens=#(=0, #)=0, OPos=[], CPos=[]
93: Evaluation line: procedure check_val (expected : in std_logic_vector; actual : in std_logic_vector; file out_stream : text; debug : in boolean := TRUE ) is
93: Evaluation pattern: ;
93: Found closing match to procedure
93: Using solo line rule.
93: Close is not alone on this line.
93: Evaluation line: procedure check_val (expected : in std_logic_vector; actual : in std_logic_vector; file out_stream : text; debug : in boolean := TRUE ) is
93: Evaluation pattern: \bis\b
93: Found closing match to procedure
93: Continuation found.  Re-evaluating for function_is
Traceback (most recent call last):
  File "C:\Program Files\Sublime Text 3\sublime_plugin.py", line 1088, in run_
    return self.run(edit)
  File "C:\Users\mark.norton\AppData\Roaming\Sublime Text 3\Packages\VHDL Mode\vhdl_mode.py", line 247, in run
    cb.indent_vhdl(0, tab_size, use_spaces)
  File "C:\Users\mark.norton\AppData\Roaming\Sublime Text 3\Packages\VHDL Mode\vhdl_lang.py", line 524, in indent_vhdl
    closing_stack.popleft()
IndexError: pop from an empty deque