.. _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**
   * - **Whitespace**
     -
     -
     -
   * - Compact whitespace groups
     - When enabled, consecutive whitespace characters are trimmed to a single space character.
     - ro.amiq.edt/format.whitespace.compact
     - false
   * - Compact consecutive empty lines
     - Controls whether to compact consecutive empty lines.
     - ro.amiq.edt/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.edt/format.whitespace.maximum_nof_consecutive_empty_lines
     - 1
   * - Trim end of line whitespace
     - When enabled, end of line whitespace is deleted.
     - ro.amiq.edt/format.whitespace.trim_end_of_line
     - true
   * - Trim whitespace lines
     - When enabled, whitespace line are deleted.
     - ro.amiq.edt/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
   * - {
     - Affects the "{" placement: 
       
       #. Leave as is
       #. On a new line
       #. On the same line
       
     - ro.amiq.edt/format.indent.begin
     - 1 ("Leave as is")
   * - Don't indent single line comments at first column
     - When enabled, single line comments that start at column zero are not indented.
     - ro.amiq.edt/format.indent.preserve_sl_comment_column_zero
     - true
   * - 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.edt/format.indent.ignore_lines
     - -
   * - Insert spaces for tabs
     - When enabled, indentation will use space characters, otherwise tabs will be used.
     - org.eclipse.ui.editors/spacesForTabs
     - false
   * - 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.edt/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.edt/format.vertical_align.consecutive_lines
     - false
   * - Vertical align single line comments
     - When enabled, single line comments are aligned.
     - ro.amiq.edt/format.vertical_align.sl_comments
     - false
   * - Vertical align tokens
     - The lines of code inside the same scope are aligned by the specified comma separated list of vertical alignment tokens.
     - ro.amiq.edt/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.edt/format.line_wrap
     - false
   * - Line width
     - Number of characters on a line after wrapping the line.
     - ro.amiq.edt/format.line_wrap.threshold
     - 80
   * - Wrap multi line comments
     - Controls whether multi-line comments are wrapped.
     - ro.amiq.edt/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.edt/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.edt/format.external
     - false
   * - Format command
     - The command used to perform code formatting when `Format code using external program` is enabled.
     - ro.amiq.edt/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.edt/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.edt/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.edt/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.edt/format.pre_external.command
     - pre_format_code %f

