DVT SystemVerilog IDE User Guide
Rev. 24.1.9, 26 April 2024

13.8 Preferences Keys

Formatting preferences are serialized as key-value pairs, by default under $DVT_USER_SETTINGS/preferences.ini.

The Settings Management mechanism allows you to reuse such preferences across your group, team, company.

Furthermore, an input file with the same format is used to configure Verissimo formatting rules, such as SVTB1.0.

Preference Name Details Preference Key Default Value
Whitespace    
Add whitespace afterSpace separated list of tokens to add whitespace after.ro.amiq.vlogdt/format.whitespace.add_after-
Add whitespace beforeSpace separated list of tokens to add whitespace before.ro.amiq.vlogdt/format.whitespace.add_before-
Compact whitespace groupsWhen enabled, consecutive whitespace characters are trimmed to a single space character.ro.amiq.vlogdt/format.whitespace.compactfalse
Compact consecutive empty linesControls whether to compact consecutive empty lines.ro.amiq.vlogdt/format.whitespace.compact_consecutive_empty_linesfalse
Maximum number of consecutive empty linesMaximum number of consecutive empty lines that can appear in a file.ro.amiq.vlogdt/format.whitespace.maximum_nof_consecutive_empty_lines1
Insert spaces for tabsWhen enabled, indentation will use space characters, otherwise tabs will be used.org.eclipse.ui.editors/spacesForTabsfalse
Remove new line afterSpace separated list of tokens to remove new lines after.ro.amiq.vlogdt/format.whitespace.remove_nl_after-
Remove new line beforeSpace separated list of tokens to remove new lines before.ro.amiq.vlogdt/format.whitespace.remove_nl_before-
Tab widthControls the size of a tab in spaces.org.eclipse.ui.editors/tabWidth4
Trim end of line whitespaceWhen enabled, end of line whitespace is deleted.ro.amiq.vlogdt/format.whitespace.trim_end_of_linetrue
Trim whitespace linesWhen enabled, whitespace line are deleted.ro.amiq.vlogdt/format.whitespace.trim_whitespace_linetrue
Indentation    
Add new line after "begin" and before "end"Controls whether to add a new line after `begin` and before `end`.ro.amiq.vlogdt/format.indent.add_new_line_after_begin_and_before_endfalse
Add new line after "end"Controls whether to add a new line after `end`.ro.amiq.vlogdt/format.indent.add_new_line_after_endfalse
Close scope macrosA close scope macro decreases the indentation level. Open/close scope macros are paired, for example: `TEST and `ENDTEST.ro.amiq.vlogdt/format.indent.close_scope_macros-
Do not indent multi-line content of assignsWhen enabled, the assign lines are not indented such as to preserve an alignment.ro.amiq.vlogdt/format.indent.skip_assignsfalse
Do not indent multi-line macro definitionsWhen enabled, multi-line macro definitions are not indented such as to preserve an alignment.ro.amiq.vlogdt/format.indent.skip.ml.macro.definitionsfalse
Don't increase the indent level onThis option allows you to control which language constructs should increase indentation.ro.amiq.vlogdt/format.indent.no_indent_keywords-
Don't indent single line comments at first columnWhen enabled, single line comments that start at column zero are not indented.ro.amiq.vlogdt/format.indent.preserve_sl_comment_column_zerotrue
"else"Affects "else" placement: Leave as is (1), On a new line (2), On the same line (3). ro.amiq.vlogdt/format.indent.else1 ("Leave as is")
Ignore lines starting withSpace separated list of line prefixes. A line starting with one of the prefixes is completely ignored, that is it is not indented, nor it contributes to indentation.ro.amiq.vlogdt/format.indent.ignore_lines-
Implicit semi macrosThe code formatting engine depends on detecting some delimiters for properly identifying the proper indentation scope. Semicolon or end is such a delimiter and sometimes it may be encapsulated inside a macro. This option allows you to explicitly list such macros for proper code formatting.ro.amiq.vlogdt/format.indent.implicit_semi_macrosovm_info(), ovm_warning(), ovm_error(), ovm_fatal(), ovm_create(), ovm_create_on(), ovm_do(), ovm_do_pri(), ovm_do_with(), ovm_do_pri_with(), ovm_do_on(), ovm_do_on_pri(), ovm_do_on_with(), ovm_do_on_pri_with(), ovm_do_seq(), ovm_do_seq_with(), ovm_send(), ovm_send_pri(), ovm_rand_send(), ovm_rand_send_pri(), ovm_rand_send_with(), ovm_rand_send_pri_with(), ovm_do_callbacks(), ovm_do_obj_callbacks(), ovm_do_task_callbacks(), ovm_do_callbacks_exit_on(), ovm_do_obj_callbacks_exit_on(), ovm_cb_trace(), ovm_cb_trace_noobj(), uvm_info(), uvm_warning(), uvm_error(), uvm_fatal(), uvm_create(), uvm_create_on(), uvm_create_seq(), uvm_do(), uvm_do_pri(), uvm_do_with(), uvm_do_pri_with(), uvm_do_on(), uvm_do_on_pri(), uvm_do_on_with(), uvm_do_on_pri_with(), uvm_do_seq(), uvm_do_seq_with(), uvm_send(), uvm_send_pri(), uvm_rand_send(), uvm_rand_send_pri(), uvm_rand_send_with(), uvm_rand_send_pri_with(), uvm_register_cb(), uvm_set_super_type(), uvm_do_callbacks(), uvm_do_obj_callbacks(), uvm_do_callbacks_exit_on(), uvm_do_obj_callbacks_exit_on(), uvm_cb_trace(), uvm_cb_trace_noobj()
Indent multi-line commentsWhen enabled, multi-line comments are indented.ro.amiq.vlogdt/format.indent.multiline_commentstrue
Open scope macrosAn open scope macro increases the indentation level of subsequent code to visualize scoping. Open/close scope macros are paired, for example: `TEST and `ENDTEST.ro.amiq.vlogdt/format.indent.open_scope_macros-
Optional "begin"Affects the optional "begin" blocks: Leave as is (1), On a new line (2), On the same line (3), On a new line and indent (4). ro.amiq.vlogdt/format.indent.begin1 ("Leave as is")
ParametersAffects module ports and parameters, function and task arguments, class parameters: Leave as is (1), One per line (open parenthesis on the same line) (2), One per line (open parenthesis on the next line) (3), More per line (4). ro.amiq.vlogdt/format.indent.params1 ("Leave as is")
More per line if less thanControls whether to place parameters on the same line when their number does not exceed a certain value and the Parameters preference is set to One per line (open parenthesis on the same line) or One per line (open parenthesis on the next line). ro.amiq.vlogdt/format.indent.more_per_line_if_less_than_enablefalse
More per line if less than thresholdMaximum number of parameters that can appear on a line when More per line if less than is enabled. ro.amiq.vlogdt/format.indent.more_per_line_if_less_than_threshold5
PreprocessingAffects `ifdef blocks: Leave as is (1), Indent (2), Indent and increase indentation level (3), Indent and increase indentation level except first (5), Move at first column (4). ro.amiq.vlogdt/format.indent.preproc1 ("Leave as is")
Vertical Alignment    
Compact whitespace for vertical align patternsWhen enabled, consecutive whitespace characters are trimmed to a single space character for vertical align patterns.ro.amiq.vlogdt/format.vertical.align.vregex.compact.whitespacefalse
Enable vertical alignWhen enabled, this option performs vertical alignment.ro.amiq.vlogdt/format.vertical_alignfalse
Independent `ifdefsWhen enabled, `ifdefs are considered independent alignment scopes,ro.amiq.vlogdt/format.vertical_align.independent_ifdefsfalse
Only consecutive linesWhen enabled, only consecutive lines (lines that follow each other or are separated by comment lines) are vertically aligned.ro.amiq.vlogdt/format.vertical_align.consecutive_linesfalse
Vertical align patternsVertically align code using patterns: By Name Port Connections, Class Declarations, Class Variable Declarations, `defines, Function Declarations, Function Variable Declarations, Interface Port Declarations, Interface Signal Declarations, Module Port Declarations, Module Signal Declarations, `xvm_field macros. ro.amiq.vlogdt/format.vertical_align.vregex-
Vertical align single line commentsWhen enabled, single line comments are aligned.ro.amiq.vlogdt/format.vertical_align.sl_commentsfalse
Vertical align to open curlyWhen enabled, vertical align to open curly.ro.amiq.vlogdt/format.vertical_align.curlyfalse
Vertical align to open parenthesisWhen enabled, vertical align to open parenthesis.ro.amiq.vlogdt/format.vertical_align.parenfalse
Vertical align tokensThe lines of code inside the same scope are aligned by the specified comma separated list of vertical alignment tokens.ro.amiq.vlogdt/format.vertical_align.tokens\=,<\=
Line Wrapping    
Enable line wrappingWhen enabled, this option splits the lines of code that exceed the specified number of characters.ro.amiq.vlogdt/format.line_wrapfalse
Line widthNumber of characters on a line after wrapping the line.ro.amiq.vlogdt/format.line_wrap.threshold80
Wrap multi line commentsControls whether multi-line comments are wrapped.ro.amiq.vlogdt/format.line_wrap.ml_commentsfalse
Wrap single line comments and move above when neededControls whether single line comments are wrapped and moved above the code.ro.amiq.vlogdt/format.line_wrap.sl_commentsfalse
External    
Format code using external programWhen enabled, all other code formatting options are disabled and code formatting is performed using the given command.ro.amiq.vlogdt/format.externalfalse
Format commandThe command used to perform code formatting when `Format code using external program` is enabled.ro.amiq.vlogdt/format.external.commandformat_code %f
Post-format code using external programWhen enabled, the code is post-formatted using the given command.ro.amiq.vlogdt/format.post_externalfalse
Post-format commandThe command used to perform code post-formatting when `Post-format code using external program` is enabled.ro.amiq.vlogdt/format.post_external.commandpost_format_code %f
Pre-format code using external programWhen enabled, the code is pre-formatted using the given command.ro.amiq.vlogdt/format.pre_externalfalse
Pre-format commandThe command used to perform code pre-formatting when `Pre-format code using external program` is enabled.ro.amiq.vlogdt/format.pre_external.commandpre_format_code %f