.. _Syntax:

Syntax
======

.. code-block:: console
    :caption: Usage

    dvt_cli.sh [-h[elp]] [-s[ilent]][-noexit] [-nostart]
               [-timeout <sec>] [-net_timeout <sec>] [-workspace <dir>] 
               [-eclipsespace <dir>] [-heap_size <size>] [-stack_size <size>]
               [-options <opt>] [-import_workspace_settings <dir>]
               [-force_import_workspace_settings <dir>]
               [-eclipse_ini <file>] [-eclipse_args <args> --] [-vscode]
               [-ls_id <id>]
               <command>

``-h[elp]``
    Show this help.

``-s[ilent]``
    Suppress script output (WARNING, INFO), allow only ERRORS and DVT CLI command results.

``-noexit``
    If the script starts a new DVT do not exit until DVT is closed. (Not supported on Windows)

``-nostart``
    Do not start a new DVT, if no DVT is found wait -timeout <seconds> before ending.

``-timeout <sec>``
    Maximum number of seconds to wait for a DVT session to start. Default is 100.

``-net_timeout <sec>``
    Maximum number of seconds to wait for a response from DVT after a session has started. Default is 10.

``-workspace <dir>``
    Path to the Eclipse workspace. If not specified $DVT_WORKSPACE_PATH will be used. 
    If $DVT_WORKSPACE_PATH is not set it will use the last workspace where a DVT was started.

``-eclipsespace``
    Path to a custom Eclipse storage directory to be used instead of ~/.eclipse. (Not supported on Windows)

``-heap_size <size>``
    Set the Java heap size (syntax is <N>[g|G|m|M|k|K]). Default is 3072m.

``-stack_size <size>``
    Set the Java thread stack size (syntax is <N>[g|G|m|M|k|K]). Default is 4m.

``-options <opt>``
    Comma separated list of options (only for Linux):

::

        disable_browser                   - do not use SWT browser component and skip auto-config
        disable_swt_auto_config           - do not auto-config SWT GTK version and SWT browser engine
        disable_chromium                  - do not use bundled Chromium browser engine
        disable_webkit                    - do not use OS's WebKit browser engine
        disable_cairo                     - do not use Cairo advanced graphics library
        disable_force_gtk2                - do not force Eclipse to use GTK2
        disable_gtk_theme                 - do not use custom GTK2 themes generated through DVT
        disable_force_classic_theme       - do not force Eclipse to use the classic theme
        disable_gtk_scroll_overlay        - use traditional scrollbars instead of scrollbars overlayed on top of content
        disable_shutdown_timeout          - do not force stop JVM when shutdown exceeds 5 seconds
        dump_allocated_swt_resources      - dump SWT allocated resources when 'No more handles' error is thrown
        disable_chromium_mtml             - do not use Chromium multithreaded message loop
        disable_chromium_launcher_library - do not use Chromium launcher library
        disable_chromium_early_init       - do not use early init for Chromium browser engine
        disable_chromium_web_security     - do not enforce same-origin policy for Chromium browser engine
        dump_allocated_swt_resources      - dump SWT allocated resources when 'No more handles' error is thrown

``-import_workspace_settings <dir>``
    Path to the workspace from where settings will be imported. (Not supported on Windows)

``-force_import_workspace_settings <dir>``
    Same as -import_workspace_settings, but it will overwrite target workspace settings. (Not supported on Windows)

``-eclipse_ini <file>``
    Path to an eclipse.ini file to be used instead of the default eclipse.ini. See: http://wiki.eclipse.org/Eclipse.ini.

``-eclipse_args <args>``
    A list of eclipse.ini arguments to be passed directly to the Eclipse binary. To indicate the end of list use -- argument. 
    See:  http://wiki.eclipse.org/Eclipse.ini.

``-vscode``
    Launches DVT IDE for VS Code by invoking  dvt_code.sh using the same arguments.
    
``-ls_id <id>``
    Specifies the id of the Language Server to which the command should be sent. Only works when -vscode is provided.

``<command>``
    The CLI command and arguments to be sent to DVT.

