Skip to content

Commit 5d1ea7c

Browse files
authored
Merge pull request #246 from vhda/indent/randcase
Indent: Improve support for randcase
2 parents 74e533b + 62fe7bd commit 5d1ea7c

5 files changed

+20
-5
lines changed

ftplugin/verilog_systemverilog.vim

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ if exists("loaded_matchit")
4141
let b:match_ignorecase=0
4242
let b:match_words=
4343
\ '\<begin\>:\<end\>,' .
44-
\ '\<case\>\|\<casex\>\|\<casez\>:\<endcase\>,' .
44+
\ '\<case\>\|\<casex\>\|\<casez\>\|\<randcase\>:\<endcase\>,' .
4545
\ '`if\(n\)\?def\>:`elsif\>:`else\>:`endif\>,' .
4646
\ '\<module\>:\<endmodule\>,' .
4747
\ '\<if\>:\<else\>,' .

indent/verilog_systemverilog.vim

+1-4
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@ let s:vlog_sens_list = '\(@\s*(.*)\)'
3232
let s:vlog_always = '\<always\(_ff\|_comb\|_latch\)\?\>\s*' . s:vlog_sens_list . '\?'
3333
let s:vlog_method = '^\(\s*pure\s\+virtual\|\s*extern\)\@!.*\<\(function\|task\)\>\s\+\(\[.*\]\s*\)\?\w\+'
3434

35-
let s:vlog_block_start = '\<\(begin\|case\|^\s*fork\)\>\|{\|('
36-
let s:vlog_block_end = '\<\(end\|endcase\|join\(_all\|_none\)\?\)\>\|}\|)'
37-
3835
let s:vlog_module = '\<\(extern\s\+\)\@<!module\>'
3936
let s:vlog_interface = '\(virtual\s\+\)\@<!\<interface\>\s*\(\<class\>\)\@!\w\+.*[^,]$'
4037
let s:vlog_package = '\<package\>'
@@ -48,7 +45,7 @@ let s:vlog_clocking = g:verilog_syntax['clocking'][0]['match_start']
4845
let s:vlog_preproc = '^\s*`ifn\?def\>'
4946
let s:vlog_define = '^\s*`define\>'
5047

51-
let s:vlog_case = '\<case[zx]\?\>\s*('
48+
let s:vlog_case = '\<case[zx]\?\>\s*(\|\<randcase\>'
5249
let s:vlog_join = '\<join\(_any\|_none\)\?\>'
5350

5451
let s:vlog_block_decl = '\(\<\(while\|if\|foreach\|for\|repeat\)\>\s*(\)\|\<\(initial\|forever\|else\|do\)\>\|' . s:vlog_always

test/indent.sv

+6
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,12 @@ case (Signal)
526526
endcase
527527
// End of copied code
528528

529+
randcase
530+
1: value <= 0;
531+
2: value <= 1;
532+
3: value <= 2;
533+
endcase
534+
529535
interface class base;
530536

531537
pure virtual function void a(input int unsigned N, ref t Data);

test/indent.sv.html

+6
Original file line numberDiff line numberDiff line change
@@ -528,6 +528,12 @@
528528
<span class="Statement">endcase</span>
529529
<span class="Comment">// End of copied code</span>
530530

531+
<span class="Statement">randcase</span>
532+
<span class="Constant">1</span><span class="Special">:</span> value <span class="Special">&lt;=</span> <span class="Constant">0</span><span class="Special">;</span>
533+
<span class="Constant">2</span><span class="Special">:</span> value <span class="Special">&lt;=</span> <span class="Constant">1</span><span class="Special">;</span>
534+
<span class="Constant">3</span><span class="Special">:</span> value <span class="Special">&lt;=</span> <span class="Constant">2</span><span class="Special">;</span>
535+
<span class="Statement">endcase</span>
536+
531537
<span class="Statement">interface</span> <span class="Statement">class</span> base<span class="Special">;</span>
532538

533539
<span class="Statement">pure</span> <span class="Statement">virtual</span> <span class="Statement">function</span> <span class="Statement">void</span> <span class="Identifier">a</span><span class="Special">(</span><span class="Statement">input</span> <span class="Statement">int</span> <span class="Statement">unsigned</span> <span class="Constant">N</span><span class="Special">,</span> <span class="Statement">ref</span> t Data<span class="Special">);</span>

test/indent_standalone.sv

+6
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,12 @@ case (Signal)
526526
endcase
527527
// End of copied code
528528

529+
randcase
530+
1: value <= 0;
531+
2: value <= 1;
532+
3: value <= 2;
533+
endcase
534+
529535
interface class base;
530536

531537
pure virtual function void a(input int unsigned N, ref t Data);

0 commit comments

Comments
 (0)