<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.vmssoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexey.klimenko</id>
	<title>VSI OpenVMS Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.vmssoftware.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alexey.klimenko"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/Special:Contributions/Alexey.klimenko"/>
	<updated>2026-04-17T11:06:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2458</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2458"/>
		<updated>2021-12-15T06:37:38Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Server1 keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;Smith&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Server1 keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;Smith&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Server1 pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
If you work on a project with dependencies, repeat these operations for other projects.&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &#039;&#039;&#039;PROJECT EXPLORER&#039;&#039;&#039; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2457</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2457"/>
		<updated>2021-12-15T06:32:57Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Server1 keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;test1&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Server1 keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;test&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Server1 pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
If you work on a project with dependencies, repeat these operations for other projects.&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &#039;&#039;&#039;PROJECT EXPLORER&#039;&#039;&#039; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=2294</id>
		<title>VMS IDE Commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=2294"/>
		<updated>2021-04-19T11:32:24Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To invoke the commands, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; in the Visual Studio Code editor and start typing the command.&lt;br /&gt;
[[File:List_of_commands.png|800px|thumb|none|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
=Commands=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Edit project settings. [[Project Settings]]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Build on VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Build project on VMS with its dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Build only this project&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Build only the selected project on VMS (Ctrl+Alt+F7).&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Change CR/LF for all source files&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Change CRLF to LF for all source files.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Clean project&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Clean project, delete files from output folder.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Create MMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Create default MMS. [[Auto-generating MMS]]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Collect JAVA classes&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Collect debug information for JVM project. [[VMS IDE for Java (Kotlin, Scala)]]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Download system headers&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Download system headers from VMS.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Edit ssh-helper settings&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Edit connection settings. [[SSH Settings]]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Force built status&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Force built status.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Force synchronized status&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Force synchronized status.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Quick uploading&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload the changes made to the source code on the the local machine since the last upload/synchronization to the remote machine.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Re-build on VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Re-build project on VMS with its dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Re-build only this project&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Re-build only the selected project on VMS.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Synchronize project file with VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Synchronize project files with VMS.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Terminal&#039;&#039;&#039;&amp;lt;/code&amp;gt; - OpenVMS terminal (&amp;lt;code&amp;gt;Ctrl+F6&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload all new and updated files from local machine to VMS. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If &#039;&#039;&#039;preferZip&#039;&#039;&#039; is set to true, the &#039;&#039;whole&#039;&#039; project will be uploaded as a ZIP file.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;VMS-IDE: Upload all via Zip&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload project files using Zip&lt;br /&gt;
&lt;br /&gt;
=Task=&lt;br /&gt;
Also, it is possible to run command through VS Code Tasks. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;label&amp;quot;: &amp;quot;Upload&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;task2cmd&amp;quot;,&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;vmssoftware.synchronizer.upload&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;lt;/code&amp;gt; unique label of command&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;type&#039;&#039;&#039;&amp;lt;/code&amp;gt; type of command, must be &#039;&#039;task2cmd&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;command&#039;&#039;&#039;&amp;lt;/code&amp;gt; the name of command, can be given from Contribution page of extension description.&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:List_of_commands.png&amp;diff=2293</id>
		<title>File:List of commands.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:List_of_commands.png&amp;diff=2293"/>
		<updated>2021-04-19T11:31:45Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2292</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2292"/>
		<updated>2021-04-19T11:17:47Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To upload files from the local machine to a remote one */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
If you work on a project with dependencies, repeat these operations for other projects.&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &#039;&#039;&#039;PROJECT EXPLORER&#039;&#039;&#039; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2291</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2291"/>
		<updated>2021-04-19T11:16:43Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Upload your project files to a remote machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload files&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
If you work on a project with dependencies, repeat these operations for other projects.&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &#039;&#039;&#039;PROJECT EXPLORER&#039;&#039;&#039; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=2290</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=2290"/>
		<updated>2021-04-19T05:43:51Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Quick Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS and JVM projects.&lt;br /&gt;
* &#039;&#039;&#039;Highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, &#039;&#039;&#039;MSG&#039;&#039;&#039;, &#039;&#039;&#039;Pascal&#039;&#039;&#039;, &#039;&#039;&#039;Fortran&#039;&#039;&#039; and &#039;&#039;&#039;Cobol&#039;&#039;&#039; source files.&lt;br /&gt;
* &#039;&#039;&#039;Light-weight IntelliSense&#039;&#039;&#039; for &#039;&#039;&#039;CLD&#039;&#039;&#039;, &#039;&#039;&#039;MSG&#039;&#039;&#039;, [[Pascal syntax highlighting|&#039;&#039;&#039;Pascal&#039;&#039;&#039;]], [[Fortran syntax highlighting|&#039;&#039;&#039;Fortran&#039;&#039;&#039;]] and [[COBOL light-weight IntelliSense|&#039;&#039;&#039;Cobol&#039;&#039;&#039;]].&lt;br /&gt;
* Supported languages: &#039;&#039;&#039;C&#039;&#039;&#039;, &#039;&#039;&#039;C++&#039;&#039;&#039;, &#039;&#039;&#039;Fortran&#039;&#039;&#039;, &#039;&#039;&#039;Cobol&#039;&#039;&#039;, &#039;&#039;&#039;Pascal&#039;&#039;&#039;, &#039;&#039;&#039;Basic&#039;&#039;&#039;, &#039;&#039;&#039;Bliss&#039;&#039;&#039;, &#039;&#039;&#039;Java&#039;&#039;&#039;, &#039;&#039;&#039;Kotlin&#039;&#039;&#039;, &#039;&#039;&#039;Scala&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Restrictions=&lt;br /&gt;
* The &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension can only be used in conjunction with ODS-5 OpenVMS file systems; it cannot be used with ODS-2 file systems.&lt;br /&gt;
* Do not use the minus sign (&amp;quot;-&amp;quot;) in file names. This may prevent the debugger from finding the source file.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This guide will help you install the VMS IDE extension and start working on your projects.&lt;br /&gt;
&lt;br /&gt;
===Quick Start===&lt;br /&gt;
* [[VMS_IDE_how_to|VMS IDE how to]]&lt;br /&gt;
* [[VMS_IDE_Installation|Installing VMS IDE]]&lt;br /&gt;
* [[VMS_IDE_Project_Configuration|Setting up a VMS Project]]&lt;br /&gt;
* [[VMS_IDE_Developing|Working on a VMS Project]]&lt;br /&gt;
&lt;br /&gt;
===Settings===&lt;br /&gt;
* [[Project Settings]]&lt;br /&gt;
* [[SSH Settings]]&lt;br /&gt;
* [[Synchronize Configuration|Synchronize Settings]]&lt;br /&gt;
* [[Build Configurations]]&lt;br /&gt;
&lt;br /&gt;
===Commands===&lt;br /&gt;
* [[VMS_IDE_Commands|VMS IDE Commands]]&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
* [[VMS_IDE_Project_Explorer|Project Explorer]]&lt;br /&gt;
* [[VMS_IDE_Debugger|Debugger]]&lt;br /&gt;
&lt;br /&gt;
=Changelog=&lt;br /&gt;
[[VMS IDE Change Log]]&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2289</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2289"/>
		<updated>2021-04-16T07:20:52Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Preparing for debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &#039;&#039;&#039;PROJECT EXPLORER&#039;&#039;&#039; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide prepare to debug&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2288</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2288"/>
		<updated>2021-04-16T07:19:09Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Preparing for debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;lt;code&amp;gt;Prepare to debug&amp;lt;/code&amp;gt; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2287</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2287"/>
		<updated>2021-04-16T07:11:12Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Preparing for debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &amp;lt;code&amp;gt;VMS JVM Debugger&amp;lt;/code&amp;gt;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &amp;lt;code&amp;gt;VMS Python Debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#* If you work on other project types, select the &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2286</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2286"/>
		<updated>2021-04-16T07:10:14Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Preparing for debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type &amp;lt;code&amp;gt;VMS debugger&amp;lt;/code&amp;gt; in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2285</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2285"/>
		<updated>2021-04-16T07:08:21Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Building on VMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command &amp;lt;code&amp;gt;vms-ide build on VMS&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2284</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2284"/>
		<updated>2021-04-16T07:07:54Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Building on VMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2283</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2283"/>
		<updated>2021-04-16T07:04:10Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Building on VMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: build project&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2282</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2282"/>
		<updated>2021-04-16T07:03:34Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Upload your project files to a remote machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2281</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2281"/>
		<updated>2021-04-16T07:03:03Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Creating an MMS file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide create/update MMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2280</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2280"/>
		<updated>2021-04-16T07:00:42Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To upload files from the local machine to a remote one */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Upload all&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; in the Command Palette bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide: Terminal&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &amp;lt;code&amp;gt;vms-ide: synchronize project files with VMS command&amp;lt;/code&amp;gt; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2279</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2279"/>
		<updated>2021-04-16T06:58:30Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To download files from a remote machine to the local */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2278</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2278"/>
		<updated>2021-04-16T06:58:06Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To download files from a remote machine to the local */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:overwrite&amp;lt;/code&amp;gt; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2277</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2277"/>
		<updated>2021-04-16T06:57:41Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To download files from a remote machine to the local */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &amp;lt;code&amp;gt;downloadNewFiles:edit&amp;lt;/code&amp;gt; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2276</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2276"/>
		<updated>2021-04-16T06:57:13Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To download files from a remote machine to the local */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2275</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2275"/>
		<updated>2021-04-16T06:56:57Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* To download files from a remote machine to the local */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;vms-ide: synchronize project files with VMS&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;vms-ide synchronize project files with VMS&amp;lt;/code command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2274</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2274"/>
		<updated>2021-04-16T06:55:54Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Customize SSH settings configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2273</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2273"/>
		<updated>2021-04-16T06:55:39Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Customize SSH settings configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2272</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2272"/>
		<updated>2021-04-16T06:54:33Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Create SSH settings configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS ssh-helper settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2271</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2271"/>
		<updated>2021-04-16T06:52:49Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Create a project configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2270</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2270"/>
		<updated>2021-04-16T06:52:13Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: /* Create a project configuration file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &amp;lt;code&amp;gt;&amp;gt;VMS-IDE: edit VMS project settings&amp;lt;/code&amp;gt; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2269</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2269"/>
		<updated>2021-04-16T06:49:01Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type &amp;lt;code&amp;gt;eol&amp;lt;/code&amp;gt; in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2268</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2268"/>
		<updated>2021-04-16T06:48:08Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms ide&amp;lt;/code&amp;gt; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2267</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2267"/>
		<updated>2021-04-16T06:47:42Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &amp;lt;code&amp;gt;vms&amp;lt;/code&amp;gt; ide into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2266</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2266"/>
		<updated>2021-04-16T06:36:51Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &#039;&#039;&#039;&#039;&#039;vms ide&#039;&#039;&#039;&#039;&#039; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2265</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2265"/>
		<updated>2021-04-16T06:36:14Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type &#039;&#039;vms ide&#039;&#039; into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2264</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2264"/>
		<updated>2021-04-16T05:56:02Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install [https://code.visualstudio.com/ Visual Studio Code] editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2262</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2262"/>
		<updated>2021-04-14T08:40:19Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
If you did not fill the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter in the launch configuration, the extension tries to run the file &#039;&#039;&#039;projectName.com&#039;&#039;&#039; from project &#039;&#039;&#039;root&#039;&#039;&#039; folder to set up required logical names. Then it runs the debugger and passes the &#039;&#039;&#039;[.outdir.buildname]projectName.exe&#039;&#039;&#039; file to it.&lt;br /&gt;
&lt;br /&gt;
In other case the &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; parameter must be the full OpenVMS path to the debugging image. The extension just runs the debugger and passes the value of &amp;lt;code&amp;gt;program&amp;lt;/code&amp;gt; to it.&lt;br /&gt;
&lt;br /&gt;
[[File:Run_debugger.png|800px|none|none|run debugger]]&lt;br /&gt;
&lt;br /&gt;
The connection to a remote machine will be established. Info about debugging session will be displayed in the &#039;&#039;&#039;Debug&#039;&#039;&#039; console tab.&lt;br /&gt;
 &lt;br /&gt;
To view more on debugger features see [https://wiki.vmssoftware.com/VMS_IDE_Debugger VMS IDE Debugger].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Run_debugger.png&amp;diff=2261</id>
		<title>File:Run debugger.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Run_debugger.png&amp;diff=2261"/>
		<updated>2021-04-14T08:38:16Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2260</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2260"/>
		<updated>2021-04-14T07:56:10Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;P&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Run&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select &#039;&#039;&#039;Debug configuration&#039;&#039;&#039; from the &#039;&#039;&#039;Run and Debug&#039;&#039;&#039; drop-down list&lt;br /&gt;
# Click the &#039;&#039;&#039;Start debugging&#039;&#039;&#039; icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2259</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2259"/>
		<updated>2021-04-14T07:55:08Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;P&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the Run view in the Activity bar&lt;br /&gt;
# Select Debug configuration from the Run and Debug drop-down list&lt;br /&gt;
# Click the Start debugging icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2258</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2258"/>
		<updated>2021-04-14T07:54:42Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project. &amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build. &amp;lt;br&amp;gt;&lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;P&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the Run view in the Activity bar&lt;br /&gt;
# Select Debug configuration from the Run and Debug drop-down list&lt;br /&gt;
# Click the Start debugging icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2257</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2257"/>
		<updated>2021-04-14T07:53:23Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To execute the “&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;” command :&lt;br /&gt;
&lt;br /&gt;
# Invoke the “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;P&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide prepare to debug&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar: &lt;br /&gt;
# Select the “&#039;&#039;vms-ide prepare to debug&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
The result of the process will be shown in the Output tab of the panel. The &#039;&#039;&#039;debug_info.json&#039;&#039;&#039; will be created in the .vscode directory at the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Running debugger===&lt;br /&gt;
&lt;br /&gt;
# Select the Run view in the Activity bar&lt;br /&gt;
# Select Debug configuration from the Run and Debug drop-down list&lt;br /&gt;
# Click the Start debugging icon (green triangle)&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2256</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2256"/>
		<updated>2021-04-14T07:43:55Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
After the build, files described by the &#039;&#039;&#039;listing&#039;&#039;&#039; mask will be loaded from the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory on VMS into the &#039;&#039;&#039;outdir/buildname&#039;&#039;&#039; directory of your local machine with the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command from the &amp;quot;PROJECT EXPLORER&amp;quot; menu for the selected project.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore, if you use your own build script, you should make sure that LISTING files are in the &#039;&#039;&#039;root/outdir/buildname&#039;&#039;&#039; directory after the build.&amp;lt;br&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Also, the &amp;quot;&#039;&#039;&#039;Prepare to debug&#039;&#039;&#039;&amp;quot; command creates a JSON file in the .vscode directory with the matching of the module names and the source files; you can edit that file if you wish but please note that it will be overwritten after the command is issued next time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2255</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2255"/>
		<updated>2021-04-14T07:41:53Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
#: [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2254</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2254"/>
		<updated>2021-04-14T07:41:32Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
# [[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
#: The launch.json file will be opened in the editor.&lt;br /&gt;
# Customize debug settings and (or) save changes: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be saved to the  .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2253</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2253"/>
		<updated>2021-04-14T07:40:08Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:Create_debug_conf.png|800px|none|none|create debug conf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Create_debug_conf.png&amp;diff=2252</id>
		<title>File:Create debug conf.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Create_debug_conf.png&amp;diff=2252"/>
		<updated>2021-04-14T07:39:08Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2251</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2251"/>
		<updated>2021-04-14T07:37:02Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;lt;code&amp;gt;outdir&amp;lt;/code&amp;gt; option in the &#039;&#039;&#039;Project&#039;&#039;&#039; section.&lt;br /&gt;
#: buildname - the value of the  &amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt; in the builds section &lt;br /&gt;
#: (you can check it in &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: &#039;&#039;&#039;vms-ide build on VMS&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==Debugging a project==&lt;br /&gt;
&lt;br /&gt;
===Preparing for debugging===&lt;br /&gt;
&lt;br /&gt;
# The project should be built with the DEBUG  build type. &lt;br /&gt;
# Create a debug configuration file&lt;br /&gt;
# Execute command “&#039;&#039;prepare to debug&#039;&#039;”&lt;br /&gt;
&lt;br /&gt;
To create a debug configuration:&lt;br /&gt;
# Go to &#039;&#039;&#039;Run → Add Configuration…&#039;&#039;&#039; &lt;br /&gt;
# Type “&#039;&#039;VMS debugger&#039;&#039;” in the search bar &lt;br /&gt;
# Select the required option for your project debugger:&lt;br /&gt;
#* If you work on a Java, Kotlin, or Scala project, select the &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. To learn more about working with these types of projects, see [https://wiki.vmssoftware.com/VMS_IDE_for_Java_(Kotlin,_Scala) VMS IDE for Java].&lt;br /&gt;
#* If you work on a Python project, select the &#039;&#039;&#039;VMS Python Debugger&#039;&#039;&#039;&lt;br /&gt;
#* If you work on other project types, select the &#039;&#039;&#039;VMS debugger&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2250</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2250"/>
		<updated>2021-04-14T07:31:28Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where&amp;lt;nowiki&amp;gt;:&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
#: outdir - the value of the &amp;quot;outdir&amp;quot; option in the Project section.&lt;br /&gt;
#: buildname - the value of the  &amp;quot;label&amp;quot; in the builds section &lt;br /&gt;
#: (you can check it in vmssoftware.synchronizer-settings.json)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: vms-ide build on VMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2249</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2249"/>
		<updated>2021-04-14T07:30:55Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#; where: &lt;br /&gt;
#: outdir - the value of the &amp;quot;outdir&amp;quot; option in the Project section.&lt;br /&gt;
#: buildname - the value of the  &amp;quot;label&amp;quot; in the builds section &lt;br /&gt;
#: (you can check it in vmssoftware.synchronizer-settings.json)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: vms-ide build on VMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2248</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2248"/>
		<updated>2021-04-14T07:29:03Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&lt;br /&gt;
#: where: &lt;br /&gt;
#: outdir - the value of the &amp;quot;outdir&amp;quot; option in the Project section.&lt;br /&gt;
#: buildname - the value of the  &amp;quot;label&amp;quot; in the builds section &lt;br /&gt;
#: (you can check it in vmssoftware.synchronizer-settings.json)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: vms-ide build on VMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2247</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2247"/>
		<updated>2021-04-14T05:25:44Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
To verify results:&lt;br /&gt;
&lt;br /&gt;
Invoke “Command Palette”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Type “&amp;gt;vms-ide: Terminal” in the Command Palette bar&lt;br /&gt;
# Select the “vms-ide: Terminal” command from the drop-down list&lt;br /&gt;
# Go to the root project directory in the command prompt of the Terminal tab in the panel.&lt;br /&gt;
# Go to [.outdir.buildname]&amp;lt;br&amp;gt;&lt;br /&gt;
where: &lt;br /&gt;
outdir - the value of the &amp;quot;outdir&amp;quot; option in the Project section.&lt;br /&gt;
buildname - the value of the  &amp;quot;label&amp;quot; in the builds section &lt;br /&gt;
(you can check it in vmssoftware.synchronizer-settings.json)&lt;br /&gt;
# Use the ‘dir’ command to see the contents of the selected directory.&lt;br /&gt;
&lt;br /&gt;
For a project with dependencies select the master project on the 2nd step. Then in the command palette select the command: vms-ide build on VMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2246</id>
		<title>VMS IDE how to</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_how_to&amp;diff=2246"/>
		<updated>2021-04-13T12:02:03Z</updated>

		<summary type="html">&lt;p&gt;Alexey.klimenko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Visual Studio Code== &lt;br /&gt;
To start working with VMS IDE you need to install Visual Studio Code editor.&lt;br /&gt;
# Go to https://code.visualstudio.com/&lt;br /&gt;
# Click the download dropdown button and select the build for your platform (Windows, Mac, or Linux). The installer will be downloaded. &lt;br /&gt;
# Run the installer and follow the instructions&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) This guide uses Visual Studio Code for Windows&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing VMS IDE extension==&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity Bar&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” into the search box&lt;br /&gt;
# Select &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Install&#039;&#039;&#039; button in the &#039;&#039;&#039;Extensions&#039;&#039;&#039; view&lt;br /&gt;
[[File:Install_vms_ide.png|800px|none|none|Install VMS IDE]]&lt;br /&gt;
&lt;br /&gt;
VS Code will install the extension. To verify that it is installed: &lt;br /&gt;
# Go to &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Preferences&#039;&#039;&#039; → &#039;&#039;&#039;Settings&#039;&#039;&#039;&lt;br /&gt;
# Type “vms ide” to the &#039;&#039;&#039;Search&#039;&#039;&#039; bar in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
The extension will be displayed in the list of settings:&lt;br /&gt;
[[File:Verify_vms_ide_is_installed.png|800px|none|none|verify vms ide is installed]]&lt;br /&gt;
&lt;br /&gt;
==Creating and setting up a project==&lt;br /&gt;
&lt;br /&gt;
===Creating a project folder===&lt;br /&gt;
To start working on your project you need to open the folder that will be used as a project folder.&lt;br /&gt;
# Select the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click the &#039;&#039;&#039;Open Folder&#039;&#039;&#039; button&lt;br /&gt;
# Select a folder for the project in the dialog window and click the &#039;&#039;&#039;Select Folder&#039;&#039;&#039; button.&lt;br /&gt;
[[File:Open_project_2.png|800px|none|none|open project 2]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; tab. All project files and directories will be shown in this panel.&lt;br /&gt;
[[File:Project_is_open.png|400px|none|none|project is open]]&lt;br /&gt;
The alternative way to open the folder: &#039;&#039;&#039;File&#039;&#039;&#039; → &#039;&#039;&#039;Open folder…&#039;&#039;&#039; → Select a folder for the project&lt;br /&gt;
&lt;br /&gt;
===Updating workspace settings===&lt;br /&gt;
From the official page of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;A Visual Studio Code &amp;quot;workspace&amp;quot; is the collection of one or more folders that are opened in a VS Code window (instance). In most cases, you will have a single folder opened as the workspace but, depending on your development workflow, you can include more than one folder, using an advanced configuration called [https://code.visualstudio.com/docs/editor/workspaces#_multiroot-workspaces Multi-root workspaces].&#039;&#039;&lt;br /&gt;
Before you start working on your project you need to set up your workspace. Two important options that you need to set are &lt;br /&gt;
* End of Line character &lt;br /&gt;
* Type of configuration&lt;br /&gt;
&lt;br /&gt;
====End of Line Character====&lt;br /&gt;
To select the end of line character:&lt;br /&gt;
# Click the &#039;&#039;&#039;Manage&#039;&#039;&#039; icon in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Click &#039;&#039;&#039;Settings&#039;&#039;&#039; in the popup menu&lt;br /&gt;
# Select &#039;&#039;&#039;Workspace&#039;&#039;&#039; in the &#039;&#039;&#039;Settings&#039;&#039;&#039; tab&lt;br /&gt;
# Type “eol” in the search bar&lt;br /&gt;
# Select &#039;&#039;&#039;“\n” (LF)&#039;&#039;&#039; in the &#039;&#039;&#039;Files: EOL&#039;&#039;&#039; drop-down list&lt;br /&gt;
[[File:Select_eol.png|800px|none|none|select eol]]&lt;br /&gt;
After changing EOL the .vscode directory with settings.json will be created in your project folder.&lt;br /&gt;
&lt;br /&gt;
====Type of configuration====&lt;br /&gt;
To select the type of configuration:&lt;br /&gt;
# Select &#039;&#039;&#039;Extensions&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Right-click the &#039;&#039;&#039;Gear&#039;&#039;&#039; icon of the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; extension&lt;br /&gt;
# Click the &#039;&#039;&#039;Extension Settings&#039;&#039;&#039;&lt;br /&gt;
# Select the &#039;&#039;&#039;Using Type&#039;&#039;&#039; item of the config from the drop-down list. We recommend using &#039;&#039;&#039;FS&#039;&#039;&#039; (default value)&lt;br /&gt;
[[File:Type_of_configuration_is_setting.png|800px|none|none|Type of configuration is setting]]&lt;br /&gt;
All project, ssh, and other settings will be saved in JSON files in the .vscode directory of the project folder.&lt;br /&gt;
&lt;br /&gt;
===Updating project settings===&lt;br /&gt;
&lt;br /&gt;
====Create a project configuration file====&lt;br /&gt;
You need to create a file with project configuration and specify your project settings in it:&lt;br /&gt;
# Click the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS project settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS project settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_project_settings_1.png|800px|none|none|edit project settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Specify your project settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize project configuration====&lt;br /&gt;
After the file is created you need to customize it specifying the parameters. &lt;br /&gt;
The structure of the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file consists of 3 sections:&lt;br /&gt;
* [https://wiki.vmssoftware.com/Project_Settings Project] - general project settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Synchronize_Configuration Synchronize] - synchronizer specific settings&lt;br /&gt;
* [https://wiki.vmssoftware.com/Build_Configurations Builds]- build configurations for the project&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=background:lightblue&amp;gt;&#039;&#039;&#039;(!) Follow the links to view all the options for each section.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;project section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; directory. For example, if the project is located in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and the home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, set the parameter value to &#039;&#039;&#039;demos/simple&#039;&#039;&#039; or &#039;&#039;&#039;/work/user/demos/simple&#039;&#039;&#039;&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;projectType&amp;lt;/code&amp;gt; that you need&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;.  &#039;&#039;&#039;WARN:&#039;&#039;&#039; Do not use spaces or special characters in the &amp;lt;code&amp;gt;projectName&amp;lt;/code&amp;gt;&lt;br /&gt;
# Check &amp;lt;code&amp;gt;builders&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;headers&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as header files. Changing any of them will result in a full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt;. These files will be synchronized and included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;resource&amp;lt;/code&amp;gt;. These files will be synchronized but not included in the [https://wiki.vmssoftware.com/Auto-generated_MMS auto-generated MMS] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; field value to list the files similar to the described above but not to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;listing&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for the debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify them in the &amp;lt;code&amp;gt;addLibraries&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;addIncludes&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Glob syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; to match one or more characters in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; to match one character in a path segment&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;**&amp;lt;/code&amp;gt; to match any number of path segments, including none&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt; to group conditions (for example {**/*.html,**/*.txt} matches all HTML and text files)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[]&amp;lt;/code&amp;gt; to declare a range of characters to match (example.[0-9] to match on example.0, example.1, …)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;synchronize section&#039;&#039;&#039; you need to:&lt;br /&gt;
Select the &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; value - strategy for downloading remote files that are newer than local copies.&lt;br /&gt;
* If you have the full project on OpenVMS and want to download it to your local machine, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&lt;br /&gt;
* If you have the full project on your local machine and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&lt;br /&gt;
* If the project on OpenVMS can be changed outside and may be newer than the local copy, set &amp;lt;code&amp;gt;downloadNewFiles&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generally, in the &#039;&#039;&#039;build section&#039;&#039;&#039; you need to:&lt;br /&gt;
# Specify &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. &#039;&#039;&#039;Note:&#039;&#039;&#039; the label is also used as the name of the output folder.&lt;br /&gt;
# Add a &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment.&lt;br /&gt;
&lt;br /&gt;
For custom build configurations for your project see [https://wiki.vmssoftware.com/Build_Configurations here].&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;project&amp;quot;: {&lt;br /&gt;
        &amp;quot;break&amp;quot;: &amp;quot;C&amp;quot;,&lt;br /&gt;
        &amp;quot;builders&amp;quot;: &amp;quot;*.{mms,com,opt}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{.vscode}/**,**/.git/**,*gitignore*&amp;quot;,&lt;br /&gt;
        &amp;quot;headers&amp;quot;: &amp;quot;*.h&amp;quot;,&lt;br /&gt;
        &amp;quot;listing&amp;quot;: &amp;quot;*.lis,*.map&amp;quot;,&lt;br /&gt;
        &amp;quot;outdir&amp;quot;: &amp;quot;out&amp;quot;,&lt;br /&gt;
        &amp;quot;projectName&amp;quot;: &amp;quot;NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;projectType&amp;quot;: &amp;quot;executable&amp;quot;,&lt;br /&gt;
        &amp;quot;resource&amp;quot;: &amp;quot;**/resource/**&amp;quot;,&lt;br /&gt;
        &amp;quot;root&amp;quot;: &amp;quot;/USR_DISK/TEST_USER/NEW_PROJECT&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c,cld,msg}&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompQual&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addCompDef&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;synchronize&amp;quot;: {&lt;br /&gt;
        &amp;quot;downloadNewFiles&amp;quot;: &amp;quot;edit&amp;quot;,&lt;br /&gt;
        &amp;quot;keepAlive&amp;quot;: false,&lt;br /&gt;
        &amp;quot;preferZip&amp;quot;: false,&lt;br /&gt;
        &amp;quot;forceLocalTime&amp;quot;: true,&lt;br /&gt;
        &amp;quot;purge&amp;quot;: false,&lt;br /&gt;
        &amp;quot;setTimeAttempts&amp;quot;: 3&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;builds&amp;quot;: {&lt;br /&gt;
        &amp;quot;configurations&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;DEBUG&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 debug,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;RELEASE&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;NEW_PROJECT 1.0.1 release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;RELEASE&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Updating SSH settings===&lt;br /&gt;
&lt;br /&gt;
====Create SSH settings configuration file====&lt;br /&gt;
&lt;br /&gt;
For syncing source code files, building, running, and debugging project you need to create a file with SSH configuration and specify your SSH settings in it:&lt;br /&gt;
# Select the &#039;&#039;&#039;View&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Command Palette…&#039;&#039;&#039; option from the &#039;&#039;&#039;View&#039;&#039;&#039; menu&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“VMS-IDE: edit VMS ssh-helper settings”&#039;&#039; command from the drop-down list&lt;br /&gt;
[[File:Edit_ssh_settings_1.png|800px|none|none|edit ssh settings 1]]&lt;br /&gt;
&lt;br /&gt;
The editor opens &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039;&lt;br /&gt;
# Specify your SSH settings (see info about parameters and values below).&lt;br /&gt;
# Save file: press &amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt; or select &#039;&#039;&#039;File → Save&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file will be saved in the .vscode directory in the root of the project folder.&lt;br /&gt;
&lt;br /&gt;
====Customize SSH settings configuration file====&lt;br /&gt;
After the file is created you need to specify the required parameters. The &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file consists of 4 sections:&lt;br /&gt;
* connection - the current connection details&lt;br /&gt;
* host-collection -  a list of connections required for the project  &lt;br /&gt;
* timeouts - SSH connection timeouts&lt;br /&gt;
* terminal - command to start the shell in the VS Code integrated terminal&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Generally, in the &#039;&#039;&#039;connection section&#039;&#039;&#039; you need to specify:&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Required&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# Specify &amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt; - IP-address or name of an OpenVMS machine or the label of a predefined connection from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section. In the latter case, all other fields in the &#039;&#039;&#039;connection&#039;&#039;&#039; section are ignored.&lt;br /&gt;
# &amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
&#039;&#039;&#039;Optional&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt; - User password that will be used for the SSH connection. If it is omitted, a password input box will be shown on a connection attempt.&lt;br /&gt;
# &amp;lt;code&amp;gt;keyFile&amp;lt;/code&amp;gt; - Path to the SSH private key file. For details on how to configure a connection using an SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&amp;lt;br&amp;gt;&lt;br /&gt;
If you need to connect to different servers when working on your project specify their settings in the &#039;&#039;&#039;host collection section&#039;&#039;&#039;. Typically the settings for every host are:&lt;br /&gt;
* label - label for the current host&#039;s settings. It can be used as a &#039;&#039;&#039;host&#039;&#039;&#039; in the &#039;&#039;&#039;connection&#039;&#039;&#039; section&lt;br /&gt;
* host&lt;br /&gt;
* password or key&lt;br /&gt;
* port&lt;br /&gt;
* username&lt;br /&gt;
To use one of the connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the label value and paste it in angle brackets (&amp;lt;&#039;&#039;&#039;label&#039;&#039;&#039;&amp;gt;) to the &#039;&#039;&#039;host&#039;&#039;&#039; field in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
&lt;br /&gt;
Example of &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; for a project with 2 hosts.&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;lt;Boston keys&amp;gt;&amp;quot; &lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;host-collection&amp;quot;: {&lt;br /&gt;
        &amp;quot;hosts&amp;quot;: [&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;h:/.ssh/sv01&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston keys&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;host&amp;quot;: &amp;quot;104.207.199.181&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;vorfolomeev&amp;quot;,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;Boston pass&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;timeouts&amp;quot;: {&lt;br /&gt;
        &amp;quot;cmdTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;feedbackTimeout&amp;quot;: 0,&lt;br /&gt;
        &amp;quot;welcomeTimeout&amp;quot;: 0&lt;br /&gt;
     },&lt;br /&gt;
    &amp;quot;terminal&amp;quot;: {&lt;br /&gt;
        &amp;quot;command&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Follow the [https://wiki.vmssoftware.com/SSH_Settings link] to view all options for each section.&lt;br /&gt;
&lt;br /&gt;
==Working on a project==&lt;br /&gt;
&lt;br /&gt;
===Synchronizing===&lt;br /&gt;
Synchronizing allows you to transfer your project files between remote and local machines. Synchronization lists files on a VMS machine and your local machine starting from the root directory. The files are identified by the &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;builders&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; masks. Files matching masks listed in the &#039;&#039;&#039;exclude&#039;&#039;&#039; section are ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====To download files from a remote machine to the local====&lt;br /&gt;
# Set the value of &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option (see Updating project settings for details) in the &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: synchronize project files with VMS”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide synchronize project files with VMS”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:overwrite”&#039;&#039;&#039; files from a remote machine will be downloaded. Local files with the same names will be overwritten. Info about the synchronization process is shown in the panel. Downloaded files can be verified in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view of the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar.&lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local.png|800px|none|none|sync to local]]&lt;br /&gt;
&lt;br /&gt;
If you specified &#039;&#039;&#039;“downloadNewFiles:edit”&#039;&#039;&#039; files from a remote machine will be downloaded into memory and the edit-merge window will be opened to let you decide what changes to save. Make necessary changes on the local side and save files using keyboard shortcut&amp;lt;Ctrl&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;S&amp;gt;&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[File:Sync_to_local_edit.png|800px|none|none|sync to local edit]]&lt;br /&gt;
&lt;br /&gt;
====To upload files from the local machine to a remote one====&lt;br /&gt;
&lt;br /&gt;
If you have project files only on your local machine and want to upload them to a remote machine:&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Upload all”&#039;&#039; in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Upload all”&#039;&#039; command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
Files from your local machine will be upload to a remote one. Info about the synchronization process will be shown in the panel. Uploaded files can be verified on the remote side:&lt;br /&gt;
&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type &#039;&#039;“&amp;gt;vms-ide: Terminal”&#039;&#039; in the Command Palette bar&lt;br /&gt;
# Select the &#039;&#039;“vms-ide: Terminal”&#039;&#039; command from the drop-down list&lt;br /&gt;
# Move to the root project directory in the command prompt of the &#039;&#039;&#039;Terminal&#039;&#039;&#039; tab in the panel.&lt;br /&gt;
# Use the “dir” command to show uploaded files.&lt;br /&gt;
&lt;br /&gt;
[[File:Upload_files.png|800px|none|none|upload files]]&lt;br /&gt;
&lt;br /&gt;
If you have files on both sides use the &#039;&#039;&#039;vms-ide: synchronize project files with VMS command&#039;&#039;&#039; (see the description below).&lt;br /&gt;
&lt;br /&gt;
===Managing dependencies===&lt;br /&gt;
From the official documentation of VS Code:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;When building a solution that contains multiple projects, it can be necessary to build certain projects first, to generate code used by other projects. When a project consumes executable code generated by another project, the project that generates the code is referred to as a project dependency of the project that consumes the code.&lt;br /&gt;
Such dependency relationships can be defined in the &#039;&#039;&#039;Project Dependencies&#039;&#039;&#039; dialog box.&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Project types:&lt;br /&gt;
* &#039;&#039;&#039;executable&#039;&#039;&#039; - source files will be built and linked in the executable image&lt;br /&gt;
* &#039;&#039;&#039;library&#039;&#039;&#039; - object library (OLB) will be created&lt;br /&gt;
* &#039;&#039;&#039;shareable&#039;&#039;&#039; - extension will create a shareable image&lt;br /&gt;
&lt;br /&gt;
====Adding all projects to the workspace:====&lt;br /&gt;
# Click the &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Click &#039;&#039;&#039;Add folder to workspace…&#039;&#039;&#039; &lt;br /&gt;
# Select the folder of the project in the dialog window&lt;br /&gt;
# Click the &#039;&#039;&#039;Add&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
[[File:Add_folder_to_workspace.png|800px|none|none|add folder to workspace]]&lt;br /&gt;
&lt;br /&gt;
The selected folder is shown in the &#039;&#039;&#039;Explorer&#039;&#039;&#039; view. &lt;br /&gt;
&lt;br /&gt;
====Saving the workspace====&lt;br /&gt;
&lt;br /&gt;
For quick access to the workspace with multiple projects save the workspace as a file:&lt;br /&gt;
&lt;br /&gt;
# Select &#039;&#039;&#039;File&#039;&#039;&#039; menu option&lt;br /&gt;
# Select &#039;&#039;&#039;Save workspace as…&#039;&#039;&#039;&lt;br /&gt;
# Type the file name&lt;br /&gt;
# Click the &#039;&#039;&#039;Save&#039;&#039;&#039; button&lt;br /&gt;
&lt;br /&gt;
After the workspace is saved you can access it by &#039;&#039;&#039;File → Open workspace…&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Managing dependencies====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the main project in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# Right-click the project that you want to add as a dependency to the main project&lt;br /&gt;
# Click &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; from the menu&lt;br /&gt;
&lt;br /&gt;
[[File:Manage_dep.png|400px|none|none|manage dep]]&lt;br /&gt;
&lt;br /&gt;
To verify the created dependency:&lt;br /&gt;
# Select the project added to the dependencies in the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; panel&lt;br /&gt;
# The &#039;&#039;&#039;Project description&#039;&#039;&#039; section will contain the master parameter showing the dependency&lt;br /&gt;
&lt;br /&gt;
[[File:Dep_res.png|400px|none|none|dep res]]&lt;br /&gt;
&lt;br /&gt;
===Building a project===&lt;br /&gt;
&lt;br /&gt;
To build a project you need to:&lt;br /&gt;
&lt;br /&gt;
# Create an MMS file&lt;br /&gt;
# Upload your project files to a remote machine&lt;br /&gt;
# Build on VMS&lt;br /&gt;
&lt;br /&gt;
====Creating an MMS file====&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity bar&#039;&#039;&#039;&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide create/update MMS&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide create/update MMS&#039;&#039;” command from the drop-down list&lt;br /&gt;
Info about the MMS file will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab of the panel. Created MMS file will be located at the root of the project.&lt;br /&gt;
&lt;br /&gt;
[[File:Creating_mms.png|400px|none|none|Creating mms]]&lt;br /&gt;
&lt;br /&gt;
If you work on a project with dependencies, create MMS files for every project.&lt;br /&gt;
&lt;br /&gt;
====Upload your project files to a remote machine====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Invoke “&#039;&#039;&#039;Command Palette&#039;&#039;&#039;”: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: Upload all&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: Upload all&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
====Building on VMS====&lt;br /&gt;
&lt;br /&gt;
# Select the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; in the &#039;&#039;&#039;Activity&#039;&#039;&#039; bar&lt;br /&gt;
# Select the project&lt;br /&gt;
# Right-click the &#039;&#039;&#039;buildName&#039;&#039;&#039; in the project description of the Project Explorer, then select &#039;&#039;&#039;Change → Select build configuration&#039;&#039;&#039;&lt;br /&gt;
# Invoke &#039;&#039;&#039;“Command Palette”&#039;&#039;&#039;: press &amp;lt;Ctrl&amp;gt;+&amp;lt;Shift&amp;gt;+&amp;lt;nowiki&amp;gt;&amp;lt;P&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Type “&#039;&#039;&amp;gt;vms-ide: build project&#039;&#039;” in the &#039;&#039;&#039;Command Palette&#039;&#039;&#039; bar&lt;br /&gt;
# Select the “&#039;&#039;vms-ide: build project&#039;&#039;” command from the drop-down list&lt;br /&gt;
&lt;br /&gt;
[[File:Change_build_conf.png|400px|none|none|change build conf]]&lt;br /&gt;
&lt;br /&gt;
The project will be built. Info about the build process will be shown in the &#039;&#039;&#039;Output&#039;&#039;&#039; tab. &lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Alexey.klimenko</name></author>
	</entry>
</feed>