.. _Preferences Keys:

Preferences Keys
================

.. rst-class:: lead

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

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

.. list-table::
   :header-rows: 1
   :widths: auto

   * - **Preference Name**
     - **Details**
     - **Preference Key**
     - **Default Value**
   * - **Capitalization**
     -
     -
     -
   * - Attributes
     - Controls the attributes capitalization: 
       
       #. Leave as is 
       #. All upper case 
       #. All lower case

     - ro.amiq.vhdldt/format.capitalization.attributes
     - 1("Leave as is")
   * - Data Types
     - Controls the data types capitalization: 
     
       #. Leave as is 
       #. All upper case 
       #. All lower case 
       
     - ro.amiq.vhdldt/format.capitalization.data_types
     - 1("Leave as is")
   * - Keywords
     - Controls the keywords capitalization: 
     
       #. Leave as is 
       #. All upper case 
       #. All lower case 
       
     - ro.amiq.vhdldt/format.capitalization.keywords
     - 1("Leave as is")
   * - **Whitespace**
     -
     -
     -
   * - Add whitespace after
     - Space separated list of tokens to add whitespace after.
     - ro.amiq.vhdldt/format.whitespace.add_after
     - -
   * - Add whitespace before
     - Space separated list of tokens to add whitespace before.
     - ro.amiq.vhdldt/format.whitespace.add_before
     - -
   * - Compact whitespace groups
     - When enabled, consecutive whitespace characters are trimmed to a single space character.
     - ro.amiq.vhdldt/format.whitespace.compact
     - false
   * - Compact consecutive empty lines
     - Controls whether to compact consecutive empty lines.
     - ro.amiq.vhdldt/format.whitespace.compact_consecutive_empty_lines
     - false
   * - Maximum number of consecutive empty lines
     - Maximum number of consecutive empty lines that can appear in a file.
     - ro.amiq.vhdldt/format.whitespace.maximum_nof_consecutive_empty_lines
     - 1
   * - Trim end of line whitespace
     - When enabled, end of line whitespace is deleted.
     - ro.amiq.vhdldt/format.whitespace.trim_end_of_line
     - true
   * - Trim whitespace lines
     - When enabled, whitespace line are deleted.
     - ro.amiq.vhdldt/format.whitespace.trim_whitespace_line
     - true
   * - **Indentation**
     -
     -
     -
   * - Auto-detect indentation
     - When enabled, indentation will be automatically detected based on the file content.
     - ro.amiq.dvt/format.indent.auto_detect
     - true
   * - Don't increase the indent level on
     - This option allows you to control which language constructs should increase indentation.
     - ro.amiq.vhdldt/format.indent.no_indent_keywords
     - -
   * - Don't indent single line comments at first column
     - When enabled, single line comments that start at column zero are not indented.
     - ro.amiq.vhdldt/format.indent.preserve_sl_comment_column_zero
     - true
   * - "then"
     - Affects the "then" keyword placement:

       #. Leave as is 
       #. On a new line 
       #. On the same line 
       
     - ro.amiq.vhdldt/format.indent.begin
     - 1 ("Leave as is")
   * - Ignore lines starting with
     - Space 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.vhdldt/format.indent.ignore_lines
     - -
   * - Indent multi-line comments
     - When enabled, multi-line comments are indented.
     - ro.amiq.vhdldt/format.indent.multiline_comments
     - true
   * - Insert spaces for tabs
     - When enabled, indentation will use space characters, otherwise tabs will be used.
     - org.eclipse.ui.editors/spacesForTabs
     - false
   * - Parameters
     - Affects port, generic, map, function and procedure elements:
     
       #. Leave as is 
       #. One per line (open parenthesis on the same line) 
       #. One per line (open parenthesis on the next line) 
       #. More per line 
       
     - ro.amiq.vhdldt/format.indent.params
     - 1 ("Leave as is")
   * - More per line if less than
     - Controls 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.vhdldt/format.indent.more_per_line_if_less_than_enable
     - false
   * - More per line if less than threshold
     - Maximum number of parameters that can appear on a line when More per line if less than is enabled.
     - ro.amiq.vhdldt/format.indent.more_per_line_if_less_than_threshold
     - 5
   * - Tab width
     - Controls the size of a tab in spaces.
     - org.eclipse.ui.editors/tabWidth
     - 4
   * - **Vertical Alignment**
     -
     -
     -
   * - Enable vertical align
     - When enabled, this option performs vertical alignment.
     - ro.amiq.vhdldt/format.vertical_align
     - false
   * - Only consecutive lines
     - When enabled, only consecutive lines (lines that follow each other or are separated by comment lines) are vertically aligned.
     - ro.amiq.vhdldt/format.vertical_align.consecutive_lines
     - false
   * - Vertical align patterns
     - Vertically align code using patterns: Constant Declarations, Port Declarations,  Record Declarations,  Signal Declarations,  Variable Declarations, Variable, Signal, Constant Declarations.
     - ro.amiq.vhdldt/format.vertical_align.vregex
     - -
   * - Vertical align single line comments
     - When enabled, single line comments are aligned.
     - ro.amiq.vhdldt/format.vertical_align.sl_comments
     - false
   * - Vertical align to open parenthesis
     - When enabled, vertical align to open parenthesis.
     - ro.amiq.vhdldt/format.vertical_align.paren
     - false
   * - Vertical alignment tokens
     - The lines of code inside the same scope are aligned by the specified comma separated list of vertical alignment tokens.
     - ro.amiq.vhdldt/format.vertical_align.tokens
     - \\=,<\\=
   * - **Line Wrapping**
     -
     -
     -
   * - Enable line wrapping
     - When enabled, this option splits the lines of code that exceed the specified number of characters.
     - ro.amiq.vhdldt/format.line_wrap
     - false
   * - Line width
     - Number of characters on a line after wrapping the line.
     - ro.amiq.vhdldt/format.line_wrap.threshold
     - 80
   * - Wrap multi line comments
     - Controls whether multi-line comments are wrapped.
     - ro.amiq.vhdldt/format.line_wrap.ml_comments
     - false
   * - Wrap single line comments and move above when needed
     - Controls whether single line comments are wrapped and moved above the code.
     - ro.amiq.vhdldt/format.line_wrap.sl_comments
     - false
   * - **External**
     -
     -
     -
   * - Format code using external program
     - When enabled, all other code formatting options are disabled and code formatting is performed using the given command.
     - ro.amiq.vhdldt/format.external
     - false
   * - Format command
     - The command used to perform code formatting when `Format code using external program` is enabled.
     - ro.amiq.vhdldt/format.external.command
     - format_code %f
   * - Post-format code using external program
     - When enabled, the code is post-formatted using the given command.
     - ro.amiq.vhdldt/format.post_external
     - false
   * - Post-format command
     - The command used to perform code post-formatting when `Post-format code using external program` is enabled.
     - ro.amiq.vhdldt/format.post_external.command
     - post_format_code %f
   * - Pre-format code using external program
     - When enabled, the code is pre-formatted using the given command.
     - ro.amiq.vhdldt/format.pre_external
     - false
   * - Pre-format command
     - The command used to perform code pre-formatting when `Pre-format code using external program` is enabled.
     - ro.amiq.vhdldt/format.pre_external.command
     - pre_format_code %f

