.. _Indentation:

Indentation
===========

-  **Tabs and Spaces** - Lines are indented using tabs or spaces depending on the preferences configured in :menuselection:`Window --> Preferences --> General --> Editors --> Text Editors`: 
    -  If the **Insert spaces for tabs** (org.eclipse.ui.editors/spacesForTabs) option is enabled, indentation will use space characters, otherwise tabs will be used. 
    -  The **Displayed tab width** (org.eclipse.ui.editors/tabWidth) option controls the size of a tab in spaces.
  
- **Auto-detect indentation** - Controls whether DVT will automatically detect the indentation style of the file opened in the editor. It can be configured from :menuselection:`Window --> Preferences --> DVT --> Editors`.

.. note::
    When the **Auto-detect indentation** (ro.amiq.dvt/format.indent.auto_detect) preference is enabled, the detected values will be displayed in the Inspect View and will have a higher priority over the **Insert spaces for tabs** and **Displayed tab width** settings when the formatter is invoked. You can also trigger a new detection from the Inspect View.

.. figure:: ../../images/e_eclipse_file_indent_inspect_view.png
	:align: center

-  **Curly - {** (ro.amiq.edt/format.indent.begin) - This option affects the *{* placement:
    -  **Leave as is** (1)
    -  **On a new line** (2) - *{* is moved on a new line
    -  **On the same line** (3) - *{* is moved on the same line with its corresponding construct

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

   * - Initial code
     - Leave as is (1)
     - On a new line (2)
     - On the same line (3)
   * - .. figure:: ../../images/common/curly-same-line.png
     - .. figure:: ../../images/common/curly-same-line.png
     - .. figure:: ../../images/common/curly-new-line.png
     - .. figure:: ../../images/common/curly-same-line.png


-  **Don't indent single line comments at first column** (ro.amiq.edt/format.indent.preserve_sl_comment_column_zero) - This option affects single line comments that start at column zero. It is useful to disable the indentation for whole regions of code that are *block commented*, for example by using :kbd:`Ctrl+/`. When enabled, single line comments that start at column zero are not indented.

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

   * - Before
     - After
   * - .. figure:: ../../images/common/before-and-after-do-not-indent-single-line-comments-e.png
     - .. figure:: ../../images/common/before-and-after-do-not-indent-single-line-comments-e.png


-  **Ignore lines starting with** (ro.amiq.edt/format.indent.ignore_lines) - 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.

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

   * - Before
     - After
   * - .. figure:: ../../images/common/before-ignore-lines-starting-with-e.png
     - .. figure:: ../../images/common/after-ignore-lines-starting-with-e.png

