diff --git a/indent/verilog_systemverilog.vim b/indent/verilog_systemverilog.vim index 4e8fd1f..ae251f5 100644 --- a/indent/verilog_systemverilog.vim +++ b/indent/verilog_systemverilog.vim @@ -329,7 +329,7 @@ function! s:GetContextIndent() endif if l:line =~ '\' - let l:lnum = s:SearchForBlockStart(s:vlog_case, '', '\', l:lnum, 1) + let l:lnum = s:SearchForBlockStart(s:vlog_case, '', '\', l:lnum, 0) let l:oneline_mode = 0 let l:line = s:GetLineStripped(l:lnum) endif diff --git a/test/indent.sv b/test/indent.sv index 612f329..54fba18 100644 --- a/test/indent.sv +++ b/test/indent.sv @@ -532,6 +532,27 @@ randcase 3: value <= 2; endcase +// indent after endcase +// https://github.com/vhda/verilog_systemverilog.vim/issues/250 +begin + case (a) + 1: value = 1; + endcase + + begin + end +end + +begin + randcase + 1: value = 1; + endcase + + begin + end +end + + interface class base; pure virtual function void a(input int unsigned N, ref t Data); diff --git a/test/indent_standalone.sv b/test/indent_standalone.sv index f355f1a..5bca571 100644 --- a/test/indent_standalone.sv +++ b/test/indent_standalone.sv @@ -532,6 +532,26 @@ randcase 3: value <= 2; endcase +// indent after endcase +// https://github.com/vhda/verilog_systemverilog.vim/issues/250 +begin + case (a) + 1: value = 1; + endcase + + begin + end +end + +begin + randcase + 1: value = 1; + endcase + + begin + end +end + interface class base; pure virtual function void a(input int unsigned N, ref t Data);