<?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=Sergey.vorfolomeev</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=Sergey.vorfolomeev"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/Special:Contributions/Sergey.vorfolomeev"/>
	<updated>2026-04-15T15:21:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1381</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1381"/>
		<updated>2019-09-11T08:02:12Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Working on a Java, Kotlin or Scala project ==&lt;br /&gt;
&lt;br /&gt;
=== Prerequirements ===&lt;br /&gt;
&lt;br /&gt;
* Java (Scala, Kotlin) must be installed on VMS host&lt;br /&gt;
* Add &#039;&#039;&#039;set process/parse_style=extended&#039;&#039;&#039; to your LOGIN.COM&lt;br /&gt;
&lt;br /&gt;
=== Creating and building a project ===&lt;br /&gt;
The general development process includes the following steps:&lt;br /&gt;
# Change project settings: &lt;br /&gt;
#* &#039;&#039;&#039;project type&#039;&#039;&#039; - specify &#039;&#039;java&#039;&#039;, &#039;&#039;scala&#039;&#039; or &#039;&#039;kotlin&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;project name&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;root folder&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039;, and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload source files&lt;br /&gt;
# Build the project&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run the project&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
Because the project target is compiled by one command for all source files, do not mix Kotlin, Scala, and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
=== Abilities ===&lt;br /&gt;
A Java, Scala or Kotlin project may depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
=== Before starting debug ===&lt;br /&gt;
To be able to use breakpoints during debugging, run &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; after editing and building the project.&lt;br /&gt;
&lt;br /&gt;
=== Running VMS JVM Debugger ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To start Debugger, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If no debug configuration is selected, the &#039;&#039;Select environment&#039;&#039; dropdown will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. If all java classes are collected successfully, the &#039;&#039;entry class&#039;&#039; QuickPick popup will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Select one and debugging will start. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating Debug Configurations ===&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this,&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Click &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The next step depends on whether the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exists or not:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If there is no &#039;&#039;&#039;launch.json&#039;&#039;&#039; file, the &#039;&#039;&#039;Select environment&#039;&#039;&#039; dropdown is displayed. Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exist, click &#039;&#039;&#039;Add Configuration&#039;&#039;&#039; button in the bottom-right corner of the VS Code and select &#039;&#039;&#039;VMS IDE: Launch JVM&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Edit the &#039;&#039;launch.json&#039;&#039; file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Specify the &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Set the class path - &#039;&#039;A colon-separated list of directories, JAR archives, and ZIP archives where to search for class files in&#039;&#039;. In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be taken from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; QuickPick will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is range of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is a string with arguments passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; indicates whether do stop or not on the program entry.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
Breakpoints are shown grayed until the corresponding class is loaded into memory. Also, they are grayed if no Java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
To add a function breakpoint:&lt;br /&gt;
# Click &#039;+&#039; in the Breakpoints view. &lt;br /&gt;
# Enter the function name using &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039; format. You can omit any part of the function name. QuickPick popup with available functions will appear. Then select the required one.&lt;br /&gt;
# If no dialog appears, click &#039;&#039;&#039;Activate Breakpoints&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
There is no specific UI for data breakpoints.&lt;br /&gt;
&lt;br /&gt;
To create a data breakpoint, type &#039;&#039;&#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039; in the debugging console input while the program is paused. &lt;br /&gt;
To remove data breakpoints, type &#039;&#039;&#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note:&#039;&#039;&#039; This feature does not catch the changing of particular variables. It catches all changes to the &amp;lt;field&amp;gt; of all instances of &amp;lt;class&amp;gt;. Also, it does not work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
A string variable is displayed &#039;&#039;as is&#039;&#039;, without escaping.&amp;lt;br&amp;gt;&lt;br /&gt;
Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&amp;lt;br&amp;gt;&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (using Java rules). Enclosing quotes are not required.&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
When a program is running, anything that you type to the debugging console is sent to the program.&lt;br /&gt;
When a program is paused, anything that you type to the debugging console is sent to the debugger. &lt;br /&gt;
&lt;br /&gt;
Note this to avoid issues with breaking the debugger. For example, &#039;eval a=100&#039; will change the value of variable &#039;&#039;a&#039;&#039; and this will not be caught by the extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1374</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1374"/>
		<updated>2019-09-05T07:56:36Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Working on a Java, Kotlin or Scala project ==&lt;br /&gt;
&lt;br /&gt;
=== Creating and building a project ===&lt;br /&gt;
The general development process includes the following steps:&lt;br /&gt;
# Change project settings: &lt;br /&gt;
#* &#039;&#039;&#039;project type&#039;&#039;&#039; - specify &#039;&#039;java&#039;&#039;, &#039;&#039;scala&#039;&#039; or &#039;&#039;kotlin&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;project name&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;root folder&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039;, and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload source files&lt;br /&gt;
# Build the project&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run the project&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
Because the project target is compiled by one command for all source files, do not mix Kotlin, Scala, and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
=== Abilities ===&lt;br /&gt;
A Java, Scala or Kotlin project may depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
=== Before starting debug ===&lt;br /&gt;
To be able to use breakpoints during debugging, run &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; after editing and building the project.&lt;br /&gt;
&lt;br /&gt;
=== Running VMS JVM Debugger ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To start Debugger, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If no debug configuration is selected, the &#039;&#039;Select environment&#039;&#039; dropdown will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. If all java classes are collected successfully, the &#039;&#039;entry class&#039;&#039; QuickPick popup will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Select one and debugging will start. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating Debug Configurations ===&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this,&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Click &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The next step depends on whether the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exists or not:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If there is no &#039;&#039;&#039;launch.json&#039;&#039;&#039; file, the &#039;&#039;&#039;Select environment&#039;&#039;&#039; dropdown is displayed. Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exist, click &#039;&#039;&#039;Add Configuration&#039;&#039;&#039; button in the bottom-right corner of the VS Code and select &#039;&#039;&#039;VMS IDE: Launch JVM&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Edit the &#039;&#039;launch.json&#039;&#039; file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Specify the &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Set the class path - &#039;&#039;A colon-separated list of directories, JAR archives, and ZIP archives where to search for class files in&#039;&#039;. In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be taken from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; QuickPick will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is range of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is a string with arguments passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; indicates whether do stop or not on the program entry.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
Breakpoints are shown grayed until the corresponding class is loaded into memory. Also, they are grayed if no Java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
To add a function breakpoint:&lt;br /&gt;
# Click &#039;+&#039; in the Breakpoints view. &lt;br /&gt;
# Enter the function name using &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039; format. You can omit any part of the function name. QuickPick popup with available functions will appear. Then select the required one.&lt;br /&gt;
# If no dialog appears, click &#039;&#039;&#039;Activate Breakpoints&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
There is no specific UI for data breakpoints.&lt;br /&gt;
&lt;br /&gt;
To create a data breakpoint, type &#039;&#039;&#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039; in the debugging console input while the program is paused. &lt;br /&gt;
To remove data breakpoints, type &#039;&#039;&#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note:&#039;&#039;&#039; This feature does not catch the changing of particular variables. It catches all changes to the &amp;lt;field&amp;gt; of all instances of &amp;lt;class&amp;gt;. Also, it does not work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
A string variable is displayed &#039;&#039;as is&#039;&#039;, without escaping.&amp;lt;br&amp;gt;&lt;br /&gt;
Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&amp;lt;br&amp;gt;&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (using Java rules). Enclosing quotes are not required.&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
When a program is running, anything that you type to the debugging console is sent to the program.&lt;br /&gt;
When a program is paused, anything that you type to the debugging console is sent to the debugger. &lt;br /&gt;
&lt;br /&gt;
Note this to avoid issues with breaking the debugger. For example, &#039;eval a=100&#039; will change the value of variable &#039;&#039;a&#039;&#039; and this will not be caught by the extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1373</id>
		<title>VMS IDE Change Log</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1373"/>
		<updated>2019-09-05T07:26:38Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1.2.6 ===&lt;br /&gt;
* Fixed issue when extension is crashed while opening C project.&lt;br /&gt;
* Fixed duplicating algorithms in SSH settings.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.3 - 1.2.5 ===&lt;br /&gt;
* Function breakpoints. &lt;br /&gt;
* Data breakpoints without UI.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.2 ===&lt;br /&gt;
* Fix for display/set unicode string in &#039;&#039;&#039;Java&#039;&#039;&#039; debugger.&lt;br /&gt;
* Ability to collect fields of Java classes.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.1 ===&lt;br /&gt;
* Fix issues with templates in &#039;&#039;&#039;Java&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.0 ===&lt;br /&gt;
* Support for &#039;&#039;&#039;Java&#039;&#039;&#039;, &#039;&#039;&#039;Kotlin&#039;&#039;&#039; and &#039;&#039;&#039;Scala&#039;&#039;&#039; languages.&lt;br /&gt;
* One output channel for all extension messages.&lt;br /&gt;
&lt;br /&gt;
=== 1.1.0 ===&lt;br /&gt;
* &#039;&#039;&#039;Pascal&#039;&#039;&#039; syntax highlighting.&lt;br /&gt;
* OpenVMS specific &#039;&#039;&#039;COBOL&#039;&#039;&#039; grammar support.&lt;br /&gt;
&lt;br /&gt;
=== 1.0.2 ===&lt;br /&gt;
* Allow users to skip signature verification in SSH (cause: Visual Studio Code 1.36.1 issue).&lt;br /&gt;
&lt;br /&gt;
=== 1.0.1 ===&lt;br /&gt;
* Fix: parsing compiler errors that occurred on the same line of source code.&lt;br /&gt;
* OpenVMS specific &#039;&#039;&#039;Pascal&#039;&#039;&#039; grammar basic support.&lt;br /&gt;
* Debugger: skip querying symbols with invalid names.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=1367</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=1367"/>
		<updated>2019-09-03T03:56:41Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &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:Vms-ide-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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1366</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1366"/>
		<updated>2019-09-03T03:42:01Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Creating Debug Configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
 &#039;&#039;&#039;Note: support for JVM based languages (Java, Kotlin, Scala) will be available soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Working on a Java, Kotlin or Scala project ==&lt;br /&gt;
&lt;br /&gt;
=== Creating and building a project ===&lt;br /&gt;
The general development process includes the following steps:&lt;br /&gt;
# Change project settings: &lt;br /&gt;
#* &#039;&#039;&#039;project type&#039;&#039;&#039; - specify &#039;&#039;java&#039;&#039;, &#039;&#039;scala&#039;&#039; or &#039;&#039;kotlin&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;project name&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;root folder&#039;&#039;&#039;&lt;br /&gt;
#* &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039;, and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload source files&lt;br /&gt;
# Build the project&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run the project&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
Because the project target is compiled by one command for all source files, do not mix Kotlin, Scala, and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
=== Abilities ===&lt;br /&gt;
A Java, Scala or Kotlin project may depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
=== Before starting debug ===&lt;br /&gt;
To be able to use breakpoints during debugging, run &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; after editing and building the project.&lt;br /&gt;
&lt;br /&gt;
=== Running VMS JVM Debugger ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; To start Debugger, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If no debug configuration is selected, the &#039;&#039;Select environment&#039;&#039; dropdown will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;. If all java classes are collected successfully, the &#039;&#039;entry class&#039;&#039; QuickPick popup will be shown.&amp;lt;br&amp;gt; [[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Select one and debugging will start. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Creating Debug Configurations ===&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this,&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Click &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The next step depends on whether the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exists or not:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If there is no &#039;&#039;&#039;launch.json&#039;&#039;&#039; file, the &#039;&#039;&#039;Select environment&#039;&#039;&#039; dropdown is displayed. Choose &#039;&#039;&#039;VMS JVM Debugger&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; If the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file exist, click &#039;&#039;&#039;Add Configuration&#039;&#039;&#039; button in the bottom-right corner of the VS Code and select &#039;&#039;&#039;VMS IDE: Launch JVM&#039;&#039;&#039;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Edit the &#039;&#039;launch.json&#039;&#039; file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Specify the &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Set the class path - &#039;&#039;A colon-separated list of directories, JAR archives, and ZIP archives where to search for class files in&#039;&#039;. In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be taken from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; QuickPick will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is range of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is a string with arguments passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; indicates whether do stop or not on the program entry.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
Breakpoints are shown grayed until the corresponding class is loaded into memory. Also, they are grayed if no Java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
To add a function breakpoint:&lt;br /&gt;
# Click &#039;+&#039; in the Breakpoints view. &lt;br /&gt;
# Enter the function name using &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039; format. You can omit any part of the function name. QuickPick popup with available functions will appear. Then select the required one.&lt;br /&gt;
# If no dialog appears, click &#039;&#039;&#039;Activate Breakpoints&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
There is no specific UI for data breakpoints.&lt;br /&gt;
&lt;br /&gt;
To create a data breakpoint, type &#039;&#039;&#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039; in the debugging console input while the program is paused. &lt;br /&gt;
To remove data breakpoints, type &#039;&#039;&#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note:&#039;&#039;&#039; This feature does not catch the changing of particular variables. It catches all changes to the &amp;lt;field&amp;gt; of all instances of &amp;lt;class&amp;gt;. Also, it does not work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
A string variable is displayed &#039;&#039;as is&#039;&#039;, without escaping.&amp;lt;br&amp;gt;&lt;br /&gt;
Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&amp;lt;br&amp;gt;&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (using Java rules). Enclosing quotes are not required.&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
When a program is running, anything that you type to the debugging console is sent to the program.&lt;br /&gt;
When a program is paused, anything that you type to the debugging console is sent to the debugger. &lt;br /&gt;
&lt;br /&gt;
Note this to avoid issues with breaking the debugger. For example, &#039;eval a=100&#039; will change the value of variable &#039;&#039;a&#039;&#039; and this will not be caught by the extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1363</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1363"/>
		<updated>2019-09-02T07:33:25Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
        &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
            &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
            &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
            &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
            &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
            &amp;quot;compress&amp;quot;: []&lt;br /&gt;
        }&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;algorithms&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Optional. This allows you to explicitly override the default transport layer algorithms used for the connection. See https://www.npmjs.com/package/ssh2#client-methods and https://www.npmjs.com/package/ssh2-streams#ssh2stream-methods&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
            &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
                &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
                &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
                &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
                &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
                &amp;quot;compress&amp;quot;: []&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1362</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1362"/>
		<updated>2019-09-02T04:01:11Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
        &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
            &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
            &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
            &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
            &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
            &amp;quot;compress&amp;quot;: []&lt;br /&gt;
        }&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;algorithms&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Optional. This allows you to explicitly override the default transport layer algorithms used for the connection. See https://www.npmjs.com/package/ssh2#client-methods&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
            &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
                &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
                &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
                &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
                &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
                &amp;quot;compress&amp;quot;: []&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1361</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1361"/>
		<updated>2019-09-02T03:59:53Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Adding a new host to collection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
        &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
            &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
            &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
            &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
            &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
            &amp;quot;compress&amp;quot;: []&lt;br /&gt;
        }&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;algorithms&#039;&#039;&#039;&amp;lt;/code&amp;gt; - This option allows you to explicitly override the default transport layer algorithms used for the connection. See https://www.npmjs.com/package/ssh2#client-methods&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
            &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
                &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
                &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
                &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
                &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
                &amp;quot;compress&amp;quot;: []&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1360</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1360"/>
		<updated>2019-09-02T03:59:05Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* SSH Settings Template */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&lt;br /&gt;
        &amp;quot;algorithms&amp;quot;: {&lt;br /&gt;
            &amp;quot;kex&amp;quot;: [],&lt;br /&gt;
            &amp;quot;cipher&amp;quot;: [],&lt;br /&gt;
            &amp;quot;serverHostKey&amp;quot;: [],&lt;br /&gt;
            &amp;quot;hmac&amp;quot;: [],&lt;br /&gt;
            &amp;quot;compress&amp;quot;: []&lt;br /&gt;
        }&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;algorithms&#039;&#039;&#039;&amp;lt;/code&amp;gt; - This option allows you to explicitly override the default transport layer algorithms used for the connection. See https://www.npmjs.com/package/ssh2#client-methods&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1359</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1359"/>
		<updated>2019-09-02T03:55:30Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;algorithms&#039;&#039;&#039;&amp;lt;/code&amp;gt; - This option allows you to explicitly override the default transport layer algorithms used for the connection. See https://www.npmjs.com/package/ssh2#client-methods&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1354</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1354"/>
		<updated>2019-08-29T06:48:56Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
Because project target will be compiled by one command for all source files please do not mix Kotlin, Scala and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
To start debugging press F5 button. If no debug configuration selected&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-no-config-selected.png|no-config]]&amp;lt;br&amp;gt;&lt;br /&gt;
the &#039;Select environment&#039; dropdown window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;br&amp;gt;&lt;br /&gt;
Choose &#039;VMS JVM Debugger&#039;. If all java classes collected successfully the &#039;entry class&#039; quickpick window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;br&amp;gt;&lt;br /&gt;
Select one and debugging will start.&lt;br /&gt;
&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this press &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&lt;br /&gt;
If there is no &#039;launch.json&#039; file the &#039;Select environment&#039; dropdown window will be displayed. Choose &#039;VMS JVM Debugger&#039;.&lt;br /&gt;
If &#039;launch.json&#039; file exists press &#039;Add Configuration&#039; button in the right bottom side and select &#039;VMS IDE: Launch JVM&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Edit &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Enter class path - &#039;&#039;A &#039;:&#039; separated list of directories, JAR archives, and ZIP archives to search for class files.&#039;&#039; In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be given from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; quickpick window will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is range of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is argumets string passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; whether do stop or not on the entry of the program.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at the breakpoints view. Enter the function name in format &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039;. You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one.&lt;br /&gt;
If no dialog appears press &#039;Activate Breakpoints&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
&lt;br /&gt;
The UI for data breakpoints doesn&#039;t exist. To create data breakpoint enter &#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039; in the input debugging console while program is paused, to remove enter &#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;.&lt;br /&gt;
This feature doesn&#039;t allow to catch changing of concrete variable, it will catch all changing of &amp;lt;field&amp;gt; for all instances of &amp;lt;class&amp;gt;. Also it doesn&#039;t work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required.&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1353</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1353"/>
		<updated>2019-08-29T06:48:20Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Displaying/Setting variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
Because project target will be compiled by one command for all source files please do not mix Kotlin, Scala and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
To start debugging press F5 button. If no debug configuration selected&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-no-config-selected.png|no-config]]&amp;lt;br&amp;gt;&lt;br /&gt;
the &#039;Select environment&#039; dropdown window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;br&amp;gt;&lt;br /&gt;
Choose &#039;VMS JVM Debugger&#039;. If all java classes collected successfully the &#039;entry class&#039; quickpick window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;br&amp;gt;&lt;br /&gt;
Select one and debugging will start.&lt;br /&gt;
&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this press &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&lt;br /&gt;
If there is no &#039;launch.json&#039; file the &#039;Select environment&#039; dropdown window will be displayed. Choose &#039;VMS JVM Debugger&#039;.&lt;br /&gt;
If &#039;launch.json&#039; file exists press &#039;Add Configuration&#039; button in the right bottom side and select &#039;VMS IDE: Launch JVM&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Edit &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Enter class path - &#039;&#039;A &#039;:&#039; separated list of directories, JAR archives, and ZIP archives to search for class files.&#039;&#039; In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be given from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; quickpick window will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is diapason of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is argumets string passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; whether do stop or not on the entry of the program.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at the breakpoints view. Enter the function name in format &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039;. You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one.&lt;br /&gt;
If no dialog appears press &#039;Activate Breakpoints&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
&lt;br /&gt;
The UI for data breakpoints doesn&#039;t exist. To create data breakpoint enter &#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039; in the input debugging console while program is paused, to remove enter &#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;.&lt;br /&gt;
This feature doesn&#039;t allow to catch changing of concrete variable, it will catch all changing of &amp;lt;field&amp;gt; for all instances of &amp;lt;class&amp;gt;. Also it doesn&#039;t work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required.&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1352</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1352"/>
		<updated>2019-08-29T06:47:47Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Data breakpoints */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
Because project target will be compiled by one command for all source files please do not mix Kotlin, Scala and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
To start debugging press F5 button. If no debug configuration selected&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-no-config-selected.png|no-config]]&amp;lt;br&amp;gt;&lt;br /&gt;
the &#039;Select environment&#039; dropdown window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;br&amp;gt;&lt;br /&gt;
Choose &#039;VMS JVM Debugger&#039;. If all java classes collected successfully the &#039;entry class&#039; quickpick window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;br&amp;gt;&lt;br /&gt;
Select one and debugging will start.&lt;br /&gt;
&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this press &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&lt;br /&gt;
If there is no &#039;launch.json&#039; file the &#039;Select environment&#039; dropdown window will be displayed. Choose &#039;VMS JVM Debugger&#039;.&lt;br /&gt;
If &#039;launch.json&#039; file exists press &#039;Add Configuration&#039; button in the right bottom side and select &#039;VMS IDE: Launch JVM&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Edit &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Enter class path - &#039;&#039;A &#039;:&#039; separated list of directories, JAR archives, and ZIP archives to search for class files.&#039;&#039; In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be given from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; quickpick window will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is diapason of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is argumets string passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; whether do stop or not on the entry of the program.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at the breakpoints view. Enter the function name in format &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039;. You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one.&lt;br /&gt;
If no dialog appears press &#039;Activate Breakpoints&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
&lt;br /&gt;
The UI for data breakpoints doesn&#039;t exist. To create data breakpoint enter &#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039; in the input debugging console while program is paused, to remove enter &#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;.&lt;br /&gt;
This feature doesn&#039;t allow to catch changing of concrete variable, it will catch all changing of &amp;lt;field&amp;gt; for all instances of &amp;lt;class&amp;gt;. Also it doesn&#039;t work for local variables.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1351</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1351"/>
		<updated>2019-08-28T09:23:29Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Features */&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;Syntax 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; and &#039;&#039;&#039;Pascal&#039;&#039;&#039; source.&lt;br /&gt;
* &#039;&#039;&#039;Code auto-completion&#039;&#039;&#039; for &#039;&#039;&#039;MSG&#039;&#039;&#039; and &#039;&#039;&#039;CLD&#039;&#039;&#039; files.&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_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>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1350</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1350"/>
		<updated>2019-08-28T09:17:48Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Steps to run java project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
Because project target will be compiled by one command for all source files please do not mix Kotlin, Scala and Java source files in one project.&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
To start debugging press F5 button. If no debug configuration selected&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-no-config-selected.png|no-config]]&amp;lt;br&amp;gt;&lt;br /&gt;
the &#039;Select environment&#039; dropdown window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;br&amp;gt;&lt;br /&gt;
Choose &#039;VMS JVM Debugger&#039;. If all java classes collected successfully the &#039;entry class&#039; quickpick window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;br&amp;gt;&lt;br /&gt;
Select one and debugging will start.&lt;br /&gt;
&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this press &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&lt;br /&gt;
If there is no &#039;launch.json&#039; file the &#039;Select environment&#039; dropdown window will be displayed. Choose &#039;VMS JVM Debugger&#039;.&lt;br /&gt;
If &#039;launch.json&#039; file exists press &#039;Add Configuration&#039; button in the right bottom side and select &#039;VMS IDE: Launch JVM&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Edit &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Enter class path - &#039;&#039;A &#039;:&#039; separated list of directories, JAR archives, and ZIP archives to search for class files.&#039;&#039; In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be given from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; quickpick window will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is diapason of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is argumets string passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; whether do stop or not on the entry of the program.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at the breakpoints view. Enter the function name in format &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039;. You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one.&lt;br /&gt;
If no dialog appears press &#039;Activate Breakpoints&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
&lt;br /&gt;
The UI for data breakpoints doesn&#039;t exist. To create data breakpoint enter &#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039; in the input debugging console while program is paused, to remove enter &#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=1349</id>
		<title>VMS IDE Project Explorer</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=1349"/>
		<updated>2019-08-28T09:13:41Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Project types */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; view helps to manage OpenVMS projects, their dependencies, and settings. It is also possible to build, rebuild, and clean the project using the &#039;&#039;&#039;Project Explorer&#039;&#039;&#039; context menu.&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Project-explorer.PNG|frame|left|Project Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
==Project Dependencies==&lt;br /&gt;
&lt;br /&gt;
====Project types====&lt;br /&gt;
* &#039;&#039;executable&#039;&#039; - executable image is created&lt;br /&gt;
* &#039;&#039;library&#039;&#039; - object library (OLB) is created&lt;br /&gt;
* &#039;&#039;shareable&#039;&#039; - shareable image is created&lt;br /&gt;
* &#039;&#039;java&#039;&#039; - project contains only java files&lt;br /&gt;
* &#039;&#039;kotlin&#039;&#039; - project contains only kotlin files&lt;br /&gt;
* &#039;&#039;scala&#039;&#039; - project contains only scala files&lt;br /&gt;
&lt;br /&gt;
====Context Menu====&lt;br /&gt;
* &#039;&#039;&#039;Add to dependencies of selected&#039;&#039;&#039; - add the project you right-clicked to the previously selected project as a dependency&lt;br /&gt;
* &#039;&#039;&#039;Remove project from dependencies&#039;&#039;&#039; - remove the selected project from dependencies of the main project&lt;br /&gt;
* &#039;&#039;&#039;Build only this project&#039;&#039;&#039; - build the current project&lt;br /&gt;
* &#039;&#039;&#039;Build with dependencies&#039;&#039;&#039; - build the current project and all its dependencies&lt;br /&gt;
* &#039;&#039;&#039;Clean this only&#039;&#039;&#039; - clean current project only&lt;br /&gt;
* &#039;&#039;&#039;Rebuild only this project&#039;&#039;&#039; - rebuild the current project&lt;br /&gt;
* &#039;&#039;&#039;Rebuild with dependencies&#039;&#039;&#039; - rebuild the current project and all its dependencies&lt;br /&gt;
&lt;br /&gt;
====Creating MMS Files====&lt;br /&gt;
&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; can create &#039;&#039;&#039;MMS&#039;&#039;&#039; files automatically based on the project type and the types of its dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
For &#039;&#039;shareable&#039;&#039; images, an options (&#039;&#039;&#039;OPT&#039;&#039;&#039;) file is created, but the universal symbol vector must be edited manually.&amp;lt;br&amp;gt;&lt;br /&gt;
If the project depends on some shareable images, a &#039;&#039;&#039;COM&#039;&#039;&#039; file is created with &#039;&#039;logicals&#039;&#039; required for running the project.&lt;br /&gt;
&lt;br /&gt;
==Project Description==&lt;br /&gt;
When a project is selected in the Project Dependencies panel, its description is shown.&lt;br /&gt;
* &#039;&#039;&#039;Local&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;folder&#039;&#039; - [[VMS IDE Project Configuration|Workspace folder name]]&lt;br /&gt;
** &#039;&#039;buildName&#039;&#039; - currently selected [[Build Configurations|build configuration]] (right-click and select &#039;&#039;&#039;Change&#039;&#039;&#039; to choose another one)&lt;br /&gt;
** &#039;&#039;sourceState&#039;&#039; - current state of source files&lt;br /&gt;
*** &#039;&#039;unknown&#039;&#039; - no synchronization or upload was performed or there were changes to the Project or SSH settings&lt;br /&gt;
*** &#039;&#039;modified&#039;&#039; - there are changes that need to be synchronized&lt;br /&gt;
*** &#039;&#039;synchronized&#039;&#039; - project files on the local machine and OpenVMS are synchronized&lt;br /&gt;
** &#039;&#039;buildState&#039;&#039; - current state of the build (&#039;&#039;Built&#039;&#039; or &#039;&#039;Not built&#039;&#039;). State is linked to the build configuration.&lt;br /&gt;
** &#039;&#039;masters&#039;&#039; - projects which depend on the currently selected project&lt;br /&gt;
* &#039;&#039;&#039;SSH&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;host&#039;&#039; - OpenVMS host to synchronize and build with&lt;br /&gt;
* &#039;&#039;&#039;Project&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;projectName&#039;&#039; - the name of the project&lt;br /&gt;
** &#039;&#039;projectType&#039;&#039; - [[#Project types|the type of the project]]&lt;br /&gt;
** &#039;&#039;root&#039;&#039; - project root on OpenVMS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Debugger&amp;diff=1348</id>
		<title>VMS IDE Debugger</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Debugger&amp;diff=1348"/>
		<updated>2019-08-28T09:11:02Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Supported Languages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; uses Visual Studio Code built-in debugger and supports all of its features.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms-ide-debugger.png|900px|none|none|VMS IDE Debugger]]&lt;br /&gt;
&lt;br /&gt;
; [1] VARIABLES : Shows local variables. If the panel is collapsed, variables are not requested. When debugging, you can set variable values by double-clicking them and typing a new value. &lt;br /&gt;
; [2] WATCH: You can add variable names (expressions) to set watchpoints:&lt;br /&gt;
: * Expression without braces &amp;quot;()&amp;quot; - request variable value (local or global);&lt;br /&gt;
: * Expression with empty braces &amp;quot;()&amp;quot; - enable watchpoint, for example &amp;lt;code&amp;gt;x()&amp;lt;/code&amp;gt;;&lt;br /&gt;
: * Expression with conditional expression in braces &amp;quot;(when ...)&amp;quot;  - enable watchpoint with condition, for example  &amp;lt;code&amp;gt;x(when (x&amp;lt;5))&amp;lt;/code&amp;gt;.&lt;br /&gt;
; [3] CALL STACK : Shows stack frames. Variables and expressions listed in VARIABLES and WATCH sections are relative to the selected stack frame.&lt;br /&gt;
; [4] BREAKPOINTS : Shows breakpoints set for the current project. &lt;br /&gt;
; [5] DEBUG TOOLBAR : Provides standard debugging actions. Edit field &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; in the launch.json file:&lt;br /&gt;
:* Set field &amp;quot;stopOnEntry&amp;quot; = true to enable stop on entry.&lt;br /&gt;
:* Set field &amp;quot;stopOnEntry&amp;quot; = false to disable stop on entry.&lt;br /&gt;
; [6] EDITOR : &lt;br /&gt;
: * Breakpoints can be toggled by clicking on the &#039;&#039;&#039;Editor&#039;&#039;&#039; margin or using &amp;lt;code&amp;gt;F9&amp;lt;/code&amp;gt; on the current line.&lt;br /&gt;
: * Variable values can be seen by hovering over variables in the code.&lt;br /&gt;
; [7] DEBUG CONSOLE : Shows debugging output. Opens automatically as soon as debugging session starts. All program output will be on this screen. If the program requires data input, enter it in the Debug Console REPL.&lt;br /&gt;
&lt;br /&gt;
=Important Notes=&lt;br /&gt;
If you cannot set breakpoints in the source file please check the language mode of the source file (see image).&lt;br /&gt;
[[File:Lang-mode.png|200px|thumb|none|Language mode]]&lt;br /&gt;
&lt;br /&gt;
== Supported Languages ==&lt;br /&gt;
Only the following languages are supported (case sensitive):&lt;br /&gt;
* c&lt;br /&gt;
* cpp&lt;br /&gt;
* cobol&lt;br /&gt;
* fortran&lt;br /&gt;
* pascal&lt;br /&gt;
* bliss&lt;br /&gt;
* vms-basic&lt;br /&gt;
* java&lt;br /&gt;
* kotlin&lt;br /&gt;
* scala&lt;br /&gt;
&lt;br /&gt;
According to the &#039;&#039;&#039;breakpoints&#039;&#039;&#039; section in the &#039;package.json&#039; file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;breakpoints&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;c&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;cpp&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;bliss&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;vms-basic&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;cobol&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;pascal&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;fortran&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;kotlin&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;scala&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;language&amp;quot;: &amp;quot;java&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Additional Information=&lt;br /&gt;
Please view [https://code.visualstudio.com/docs/editor/debugging Visual Studio Code documentation] to learn more about Debbuger view and debugging process in Visual Studio Code.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1347</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1347"/>
		<updated>2019-08-28T09:08:43Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build Configurations===&lt;br /&gt;
To build your projects you can use a default build configuration or create a custom one. See [[Build Configurations]] for details.&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building your project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;. See [[Auto-generated MMS]] for more information.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJECT DESCRIPTION&#039;&#039;&#039; section, choose the required [[Build Configurations|build configuration]] by right-clicking the &#039;&#039;&#039;buildName&#039;&#039;&#039; parameter and selecting &#039;&#039;&#039;Change&#039;&#039;&#039;.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
To debug JVM based projects see [[VMS IDE for Java (Kotlin, Scala)]]&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start a debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1346</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1346"/>
		<updated>2019-08-28T09:06:23Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Managing Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build Configurations===&lt;br /&gt;
To build your projects you can use a default build configuration or create a custom one. See [[Build Configurations]] for details.&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building your project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;. See [[Auto-generated MMS]] for more information.&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJECT DESCRIPTION&#039;&#039;&#039; section, choose the required [[Build Configurations|build configuration]] by right-clicking the &#039;&#039;&#039;buildName&#039;&#039;&#039; parameter and selecting &#039;&#039;&#039;Change&#039;&#039;&#039;.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start a debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1345</id>
		<title>VMS IDE Change Log</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1345"/>
		<updated>2019-08-28T09:03:30Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== 1.2.3 ===&lt;br /&gt;
* Function breakpoints. Data breakpoints without UI.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.2 ===&lt;br /&gt;
* Fix display/set unicode string in &#039;&#039;&#039;Java&#039;&#039;&#039; debugger, collecting fields of java classes.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.1 ===&lt;br /&gt;
* Fix working with templates in &#039;&#039;&#039;Java&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.0 ===&lt;br /&gt;
* Support &#039;&#039;&#039;Java&#039;&#039;&#039;, &#039;&#039;&#039;Kotlin&#039;&#039;&#039; and &#039;&#039;&#039;Scala&#039;&#039;&#039;.&lt;br /&gt;
* One output channel &amp;quot;VMS-IDE&amp;quot; for all extension messages.&lt;br /&gt;
&lt;br /&gt;
=== 1.1.0 ===&lt;br /&gt;
* &#039;&#039;&#039;Pascal&#039;&#039;&#039; syntax highlighting.&lt;br /&gt;
* OpenVMS specific &#039;&#039;&#039;COBOL&#039;&#039;&#039; grammar support.&lt;br /&gt;
&lt;br /&gt;
=== 1.0.2 ===&lt;br /&gt;
* Allow to skip verifying the signature in SSH (because of VS Code 1.36.1 issue).&lt;br /&gt;
&lt;br /&gt;
=== 1.0.1 ===&lt;br /&gt;
* Fix: parsing compiler errors that occurred on the same line of source code.&lt;br /&gt;
* OpenVMS specific &#039;&#039;&#039;Pascal&#039;&#039;&#039; grammar basic support.&lt;br /&gt;
* Debugger: skip querying symbols with invalid names.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1344</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1344"/>
		<updated>2019-08-28T08:59:37Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Project Settings Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Project Configuration Example=&lt;br /&gt;
&amp;lt;pre&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}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{node_modules,.vscode}/**&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&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;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;project&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c}&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;sys$library:IMAGELIB.OLB,sys$library:RDBMSGS.OLB&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;sys$library&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Project Settings Description=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Break&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Keyboard key to pause debugging in VMS IDE debugger. The extension uses combination &amp;lt;code&amp;gt;CTRL+Key&amp;lt;/code&amp;gt; to pause debugging when user press &#039;&#039;&#039;Pause&#039;&#039;&#039; or &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Builders&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for files used for building the project. Default is &amp;quot;*.{mms,com}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Exclude&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Folders excluded from synchronization with OpenVMS system.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Headers&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Header files. Default is &amp;quot;*.{h,hpp}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Listing&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Listing files that will be downloaded after the project is built for debugging purpose.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Outdir&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Should be only the name of the folder, not a full or relative path. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Name&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Name for the executable file, auto-generated &#039;&#039;&#039;MMS&#039;&#039;&#039; file for builder, OPT file for linker, and COM file for defining logical names. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Use one word only; do not use spaces or special characters.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Type&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Type of the project. Available types: &#039;&#039;&#039;executable&#039;&#039;&#039;, &#039;&#039;&#039;library&#039;&#039;&#039; or &#039;&#039;&#039;shareable&#039;&#039;&#039; for classic languages; &#039;&#039;&#039;java&#039;&#039;&#039;, &#039;&#039;&#039;kotlin&#039;&#039;&#039; or &#039;&#039;&#039;scala&#039;&#039;&#039; for JVM based projects. The building method depends on the type of the project and its dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Resource&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Files required for the project, but are not involved in the build process.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Root&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Directory of the project on the remote OpenVMS machine in UNIX format relative to the home folder.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Source&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for the source files, e.g. &amp;quot;*.{c,cpp}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional libraries&#039;&#039;&#039;&amp;lt;/code&amp;gt; - list of libraries in ODS-5 format, separated by commas.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional include folders&#039;&#039;&#039;&amp;lt;/code&amp;gt; - list of folders in ODS-5 format, separated by commas.&lt;br /&gt;
&lt;br /&gt;
=Adjusting Project Settings=&lt;br /&gt;
# Set the &amp;lt;code&amp;gt;&#039;&#039;&#039;Root&#039;&#039;&#039;&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;.&lt;br /&gt;
# Select the &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Type&#039;&#039;&#039;&amp;lt;/code&amp;gt; that you need.&lt;br /&gt;
# Specify the &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Name&#039;&#039;&#039;&amp;lt;/code&amp;gt;. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: do not use spaces or special characters.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Builders&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Headers&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as header files. Changing any of them will result in full project rebuild.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Source&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized and included into the [[Auto-generating MMS|auto-generated MMS]] file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Resource&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized but not included into the [[Auto-generating MMS|auto-generated MMS]] file.&lt;br /&gt;
# Adjust the &amp;lt;code&amp;gt;&#039;&#039;&#039;Exclude&#039;&#039;&#039;&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;&#039;&#039;&#039;Listing&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be downloaded after building the project. Files &amp;quot;*.lis,*.map&amp;quot; are required for debugger.&lt;br /&gt;
# If the project depends on already installed libraries, specify the in the &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional libraries&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional include folders&#039;&#039;&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Pascal_syntax_highlighting&amp;diff=1343</id>
		<title>Pascal syntax highlighting</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Pascal_syntax_highlighting&amp;diff=1343"/>
		<updated>2019-08-28T08:57:58Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Syntax highlighting for Pascal ==&lt;br /&gt;
[[File:Pascal-syntax-1.png|Pascal-syntax-example|frame|left]]&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Displaying symbol source in tooltip&lt;br /&gt;
* Go to symbol definition (F12)&lt;br /&gt;
* Peek definition (Alt-F12)&lt;br /&gt;
* Find all references (Shift-Alt-F12)&lt;br /&gt;
* Rename symbol (F2)&lt;br /&gt;
* Dynamic syntax checking&lt;br /&gt;
[[File:Pascal-syntax-2.png|thumb|left|syntax check]]&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Pascal_syntax_highlighting&amp;diff=1342</id>
		<title>Pascal syntax highlighting</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Pascal_syntax_highlighting&amp;diff=1342"/>
		<updated>2019-08-28T08:57:35Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: Created page with &amp;quot; == Syntax highlighting for Pascal == left  === Features === * Displaying symbol source in tooltip * Go to symbol defi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Syntax highlighting for Pascal ==&lt;br /&gt;
[[File:Pascal-syntax-1.png|Pascal-syntax-example|frame|left]]&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Displaying symbol source in tooltip&lt;br /&gt;
* Go to symbol definition (F12)&lt;br /&gt;
* Peek definition (Alt-F12)&lt;br /&gt;
* Find all references (Shift-Alt-F12)&lt;br /&gt;
* Rename symbol (F2)&lt;br /&gt;
* Dynamic syntax checking&lt;br /&gt;
[[File:Pascal-syntax-2.png|thumb|left|syntax check]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Pascal-syntax-2.png&amp;diff=1341</id>
		<title>File:Pascal-syntax-2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Pascal-syntax-2.png&amp;diff=1341"/>
		<updated>2019-08-28T08:55:27Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pascal-syntax-2&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Pascal-syntax-1.png&amp;diff=1340</id>
		<title>File:Pascal-syntax-1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Pascal-syntax-1.png&amp;diff=1340"/>
		<updated>2019-08-28T08:43:30Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pascal-syntax-1&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1339</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1339"/>
		<updated>2019-08-28T06:57:19Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes. This step is required for debugging.&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
=== Start ===&lt;br /&gt;
&lt;br /&gt;
To start debugging press F5 button. If no debug configuration selected&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-no-config-selected.png|no-config]]&amp;lt;br&amp;gt;&lt;br /&gt;
the &#039;Select environment&#039; dropdown window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select.png|dbg-select]]&amp;lt;br&amp;gt;&lt;br /&gt;
Choose &#039;VMS JVM Debugger&#039;. If all java classes collected successfully the &#039;entry class&#039; quickpick window will be displayed.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-select-main.png|select-main]]&amp;lt;br&amp;gt;&lt;br /&gt;
Select one and debugging will start.&lt;br /&gt;
&lt;br /&gt;
You can configure &#039;launch.json&#039; to start predefined debug configuration. To do this press &#039;Configure or Fix...&#039; button on the DEBUG panel.&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Jvm-dbg-configure-or-fix.png|dbg-configure-or-fix]]&amp;lt;br&amp;gt;&lt;br /&gt;
If there is no &#039;launch.json&#039; file the &#039;Select environment&#039; dropdown window will be displayed. Choose &#039;VMS JVM Debugger&#039;.&lt;br /&gt;
If &#039;launch.json&#039; file exists press &#039;Add Configuration&#039; button in the right bottom side and select &#039;VMS IDE: Launch JVM&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;type&amp;quot;: &amp;quot;vms jvm debugger&amp;quot;,&lt;br /&gt;
  &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
  &amp;quot;name&amp;quot;: &amp;quot;Launch JVM&amp;quot;,&lt;br /&gt;
  &amp;quot;classpath&amp;quot;: &amp;quot;${command:FillClassPath}&amp;quot;,&lt;br /&gt;
  &amp;quot;class&amp;quot;: &amp;quot;${command:FillClassName}&amp;quot;,&lt;br /&gt;
  &amp;quot;port&amp;quot;: &amp;quot;5005-5105&amp;quot;,&lt;br /&gt;
  &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
  &amp;quot;stopOnEntry&amp;quot;: true&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Do not change &#039;&#039;&#039;type&#039;&#039;&#039; and &#039;&#039;&#039;request&#039;&#039;&#039;&lt;br /&gt;
* Edit &#039;&#039;&#039;name&#039;&#039;&#039;&lt;br /&gt;
* Enter class path - &#039;&#039;A &#039;:&#039; separated list of directories, JAR archives, and ZIP archives to search for class files.&#039;&#039; In case of &amp;quot;${command:FillClassPath}&amp;quot; class path will be given from project settings.&lt;br /&gt;
* Enter full class name with the static &#039;&#039;&#039;main&#039;&#039;&#039; method. In case of &amp;quot;${command:FillClassName}&amp;quot; the &#039;select executable class&#039; quickpick window will be displayed when debugging is started.&lt;br /&gt;
* &#039;&#039;&#039;port&#039;&#039;&#039; is diapason of ports for JDB.&lt;br /&gt;
* &#039;&#039;&#039;arguments&#039;&#039;&#039; is argumets string passed to the program.&lt;br /&gt;
* &#039;&#039;&#039;stopOnEntry&#039;&#039;&#039; whether do stop or not on the entry of the program.&lt;br /&gt;
&lt;br /&gt;
=== Breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
==== Function breakpoints ====&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at the breakpoints view. Enter the function name in format &#039;&#039;&amp;lt;full_class_path&amp;gt;.&amp;lt;method&amp;gt;(&amp;lt;arg_type1&amp;gt;, &amp;lt;arg_type2&amp;gt;...)&#039;&#039;. You can omit any part of function name. QuickPick window with corresponding functions will appear. Select required one.&lt;br /&gt;
If no dialog appears press &#039;Activate Breakpoints&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Data breakpoints ====&lt;br /&gt;
&lt;br /&gt;
The UI for data breakpoints doesn&#039;t exist. To create data breakpoint enter &#039;watch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039; in the input debugging console while program is paused, to remove enter &#039;unwatch all &amp;lt;class&amp;gt;.&amp;lt;field&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Displaying/Setting variables ===&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!&lt;br /&gt;
&lt;br /&gt;
=== Debugging console ===&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-configure-or-fix.png&amp;diff=1338</id>
		<title>File:Jvm-dbg-configure-or-fix.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-configure-or-fix.png&amp;diff=1338"/>
		<updated>2019-08-28T06:29:04Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;dbg-configure-or-fix&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-select-main.png&amp;diff=1337</id>
		<title>File:Jvm-dbg-select-main.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-select-main.png&amp;diff=1337"/>
		<updated>2019-08-28T06:24:59Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;select-main&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-select.png&amp;diff=1336</id>
		<title>File:Jvm-dbg-select.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-select.png&amp;diff=1336"/>
		<updated>2019-08-28T06:20:54Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jvm-dbg-select&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-no-config-selected.png&amp;diff=1335</id>
		<title>File:Jvm-dbg-no-config-selected.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Jvm-dbg-no-config-selected.png&amp;diff=1335"/>
		<updated>2019-08-28T06:18:01Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Jvm-dbg-no-config-selected&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1334</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1334"/>
		<updated>2019-08-27T09:10:11Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
=== Function breakpoints ===&lt;br /&gt;
&lt;br /&gt;
Press &#039;+&#039; at breakpoints view. Enter function name. QuickPick window with corresponding functions should appear. Select one.&lt;br /&gt;
If no dialog appears press re-enable breakpoints.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1333</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1333"/>
		<updated>2019-08-23T09:27:59Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules). No enclosing quotes required!&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1332</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1332"/>
		<updated>2019-08-23T09:25:06Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Steps to run java project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
== Abilities ==&lt;br /&gt;
&lt;br /&gt;
* Java, Scala or Kotlin project can depend on other Java, Scala or Kotlin projects.&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
In order to use breakpoints one should execute &#039;&#039;&#039;Collect Java classes&#039;&#039;&#039; before debugging if project is changed and built.&lt;br /&gt;
&lt;br /&gt;
Breakpoints are shown grayed until corresponding class is loaded into memory. Also they are grayed if no java class information collected.&lt;br /&gt;
&lt;br /&gt;
String variable is displayed &#039;as is&#039;, without escaping. Char variable is escaped if its value is less than 0x20 or greater than 0x7f.&lt;br /&gt;
&lt;br /&gt;
To set the value of a string or char variable, you can write an escaped string (in java rules).&lt;br /&gt;
&lt;br /&gt;
If the program is running, everything written in the input debugging console will be sent to the program.&lt;br /&gt;
If the program is paused, everything written in the input debugging console will be sent to the debugger. So be careful not to break the debugger. For example &#039;eval a=100&#039; will change the value of variable and this won&#039;t be caught by extension.&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1331</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1331"/>
		<updated>2019-08-22T04:41:16Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Steps to run java project ==&lt;br /&gt;
&lt;br /&gt;
# Change project settings: &#039;&#039;&#039;project type&#039;&#039;&#039; (java, scala or kotlin), &#039;&#039;&#039;project name&#039;&#039;&#039;, &#039;&#039;&#039;root folder&#039;&#039;&#039;, &#039;&#039;&#039;source&#039;&#039;&#039;, &#039;&#039;&#039;headers&#039;&#039;&#039;, &#039;&#039;&#039;resource&#039;&#039;&#039; and &#039;&#039;&#039;listing&#039;&#039;&#039; masks&lt;br /&gt;
# Write code&lt;br /&gt;
# Create MMS&lt;br /&gt;
# Upload&lt;br /&gt;
# Build&lt;br /&gt;
# Collect Java classes&lt;br /&gt;
# Run&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: coming soon&#039;&#039;&#039;&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=1330</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=1330"/>
		<updated>2019-08-22T04:34:12Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Commands */&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:Vms-ide-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: 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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1329</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1329"/>
		<updated>2019-08-22T04:27:33Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running, and debugging projects. &amp;lt;br&amp;gt;&lt;br /&gt;
Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via &#039;&#039;&#039;Visual Studio Code&#039;&#039;&#039; settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The &#039;&#039;&#039;connection&#039;&#039;&#039; section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&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&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. For details on how to configure connection using SSH key, see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
&lt;br /&gt;
Required fields are: &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may use either password or key file to establish connection:&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keyFile&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;keyFile&#039;&#039;&#039; is not set, &#039;&#039;&#039;password&#039;&#039;&#039; is used. If neither &#039;&#039;&#039;password&#039;&#039;&#039; nor &#039;&#039;&#039;keyFile&#039;&#039;&#039; is specified, you will be prompted to enter your password during the connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to create a list of required connections to be able to quickly connect to any of them. &lt;br /&gt;
You can do this by adding all the required connections to the &#039;&#039;&#039;Host Collection&#039;&#039;&#039; list.&lt;br /&gt;
&lt;br /&gt;
=== Adding a new host to collection ===&lt;br /&gt;
To add a new host to the collection:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the ssh connection template to &#039;&#039;&#039;host-collection.hosts&#039;&#039;&#039; array:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;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;&amp;lt;First&amp;gt;&amp;quot;,&lt;br /&gt;
            &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
            &amp;quot;skipSignatureVerification&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
    ]&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Specify connection parameters&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure that &#039;&#039;&#039;label&#039;&#039;&#039; parameter is set.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Selecting which connection to use===&lt;br /&gt;
To use one of connections from the &#039;&#039;&#039;host collection&#039;&#039;&#039; section, copy the value of &#039;&#039;label&#039;&#039; and paste it in angle brackets (&#039;&#039;&#039;&amp;lt;label&amp;gt;&#039;&#039;&#039;) 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 ===&lt;br /&gt;
&amp;lt;pre&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;MySSHConnection&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;10.10.6.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;myPassword&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;MySSHConnection&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
You can define SSH connection timeouts in this section.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;cmdTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;feedbackTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for the specified interval, the password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;welcomeTimeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this interval, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;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;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
Specifies command to start the shell in the VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start the shell.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is possible to use variables in the command. The syntax is: &amp;lt;code&amp;gt;${variable}&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}&amp;lt;/code&amp;gt;. Supported variables: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039;, and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; password may come from settings or UI prompt that is shown if the password is not specified in settings. Passwords entered in the terminal are not saved.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;terminal&amp;quot;: {&lt;br /&gt;
    &amp;quot;command&amp;quot;: &amp;quot;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1324</id>
		<title>VMS IDE for Java (Kotlin, Scala)</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1324"/>
		<updated>2019-08-21T12:13:20Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: Created page with &amp;quot; * Change project type: java, scala or kotlin * Change project name, root folder * Change source, headers, resource and listing mask * Write code * Create MMS * Upload * Build...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* Change project type: java, scala or kotlin&lt;br /&gt;
* Change project name, root folder&lt;br /&gt;
* Change source, headers, resource and listing mask&lt;br /&gt;
* Write code&lt;br /&gt;
* Create MMS&lt;br /&gt;
* Upload&lt;br /&gt;
* Build&lt;br /&gt;
* Collect Java classes&lt;br /&gt;
* Run&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1323</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1323"/>
		<updated>2019-08-21T11:30:07Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. How to configure connection using SSH key see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
&lt;br /&gt;
Required fields to connect: &lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To provide security user may use one of two ways:&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;Key File&#039;&#039;&#039; is empty, &#039;&#039;&#039;Password&#039;&#039;&#039; will be used. If &#039;&#039;&#039;Password&#039;&#039;&#039; is empty too a password input box will be shown on connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
To add new host into collection do the following:&lt;br /&gt;
* Copy whole content of {...} from &#039;&#039;&#039;connection&#039;&#039;&#039; into &#039;&#039;&#039;host-collection&#039;&#039;&#039;-&amp;gt;&#039;&#039;&#039;hosts&#039;&#039;&#039;&lt;br /&gt;
* Add field &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
* Adjust fields for this new host in collection&lt;br /&gt;
* Write &amp;lt;&#039;&#039;label&#039;&#039;&amp;gt; into &#039;&#039;&#039;host&#039;&#039;&#039; field in &#039;&#039;&#039;connection&#039;&#039;&#039; to use this new host as default&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&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;First&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;1.1.1.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;pass&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;First&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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
&lt;br /&gt;
Specifies command to start SSH shell in VS Code integrated terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start SSH shell. It is possible to insert variables into command. The syntax is: ${variable} or ${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}. Where variable can be following: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039; and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: password may come from settings or if user entered it in UI prompt. Passwords entered in terminal aren&#039;t saved.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1298</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1298"/>
		<updated>2019-08-08T04:06:44Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Named build configurations ==&lt;br /&gt;
&lt;br /&gt;
The build process depends on this configuration. Each label describes one way of building.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;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;DEBUG&amp;quot;,&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;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;
                &amp;quot;label&amp;quot;: &amp;quot;myOwnRelease&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;My own build release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;executable.mms&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;myOwnDebug&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;My own build debug&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique label, name of build configuration. Also this value is used as output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command to build, clean project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass into command&lt;br /&gt;
&lt;br /&gt;
In case of command is empty the default auto-created MMS file is used to build project. Parameter is used to distinguish DEBUG and RELEASE.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is MMS file, it is processed via command &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;&#039;parameter&#039;&#039;&#039;&amp;quot;, so the parameter is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is COM file, it is executed like &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;&#039;parameter&#039;&#039;&#039;&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended that user-defined build procedure creates resulting files in &#039;&#039;&#039;&amp;lt;project root&amp;gt;/&amp;lt;output folder&amp;gt;/&amp;lt;build label&amp;gt;&#039;&#039;&#039; directory. So does default procedure.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&#039;CLEAN&#039;&#039;&#039; operation &#039;&#039;&#039;parameter&#039;&#039;&#039; will be just &amp;quot;CLEAN&amp;quot; string.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editing of &#039;&#039;&#039;builds&#039;&#039;&#039; is the same as editing of &#039;&#039;&#039;project settings&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change current build configuration click &amp;quot;Change&amp;quot; on the &#039;&#039;&#039;buildName:&#039;&#039;&#039; line.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To debug a project, there must be a build configuration named &#039;&#039;&#039;DEBUG&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes in &#039;&#039;&#039;task2cmd&#039;&#039;&#039;: parameter for any build and clean command must be named build configuration label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1297</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1297"/>
		<updated>2019-08-08T04:02:46Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
To figure out the way of building see [[Build Configurations]].&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;. [[Auto-generating MMS]]&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJECT DESCRIPTION&#039;&#039;&#039; section, choose the required build configuration by right-clicking the &#039;&#039;&#039;buildName&#039;&#039;&#039; parameter and selecting &#039;&#039;&#039;Change&#039;&#039;&#039;.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&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.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;myDebug&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where:&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of predefined build configuration.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start a debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1296</id>
		<title>VMS IDE Developing</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1296"/>
		<updated>2019-08-08T04:00:34Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Build MMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Loading Existing Project== &lt;br /&gt;
If you start working on an existing project that resides on your OpenVMS machine, you need to download the source files to your local machine. Use the &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; tool as described below to download the source files.&lt;br /&gt;
# Change the [[Synchronize Configuration#Settings Description|&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;]] option to &#039;&#039;overwrite&#039;&#039;.&lt;br /&gt;
# Run the &amp;lt;code&amp;gt;VMS-IDE: Synchronize project files with VMS&amp;lt;/code&amp;gt; command.&lt;br /&gt;
# After all project files are downloaded, change the &#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039; option to &#039;&#039;skip&#039;&#039; or &#039;&#039;edit&#039;&#039; to prevent silent overwriting of local files.&lt;br /&gt;
&lt;br /&gt;
==Managing Project Source Files==&lt;br /&gt;
You can view and edit all project files from the Visual Studio Code &#039;&#039;&#039;Explorer&#039;&#039;&#039;. Refer to Visual Studio Code [https://code.visualstudio.com/docs/getstarted/userinterface documentation] to learn more about &#039;&#039;&#039;Explorer&#039;&#039;&#039; view features.&lt;br /&gt;
&lt;br /&gt;
The OpenVMS project structure may look like shown below:&lt;br /&gt;
[[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
&lt;br /&gt;
==Managing the Project==&lt;br /&gt;
You can manage your OpenVMS project from the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view. To open the view, click &#039;&#039;Project Explorer&#039;&#039; icon on the Activity Bar.&lt;br /&gt;
&lt;br /&gt;
===Managing Dependencies===&lt;br /&gt;
If you work on a complex project and you need to add dependencies, use the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section. &amp;lt;br&amp;gt;&lt;br /&gt;
Assuming that you want to add &amp;quot;Project B&amp;quot; to &amp;quot;Project A&amp;quot; dependencies, &amp;lt;br&amp;gt;&lt;br /&gt;
# Select &amp;quot;Project A&amp;quot; in the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; panel.&lt;br /&gt;
# Right-click &amp;quot;Project B&amp;quot;, and select &#039;&#039;Add to dependencies of selected&#039;&#039; item from the context menu.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a project from dependencies&lt;br /&gt;
# Open the &#039;&#039;&#039;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# Right-click the project, then select &#039;&#039;Remove from dependencies&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
===Build MMS===&lt;br /&gt;
Before building the project, create the &#039;&#039;&#039;MMS&#039;&#039;&#039; file by pressing &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and running &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt;. [[Auto-generating MMS]]&lt;br /&gt;
&lt;br /&gt;
===Building VMS Project===&lt;br /&gt;
To build a project in VMS IDE: &lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
# Select the project you want to build in the &#039;&#039;&#039;PROJECT DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJECT DESCRIPTION&#039;&#039;&#039; section, choose the required build configuration by right-clicking the &#039;&#039;&#039;buildName&#039;&#039;&#039; parameter and selecting &#039;&#039;&#039;Change&#039;&#039;&#039;.&lt;br /&gt;
# Right-click the project and select &#039;&#039;Build with dependencies&#039;&#039; from the context menu.&lt;br /&gt;
&lt;br /&gt;
If there are any changes to the project, the updated files will be uploaded to the OpenVMS system. Previously created object and listing files (.OBJ, .LIS) will be removed from the OpenVMS system. This guarantees that up-to-date files are uploaded to the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: you can manually upload all new and updated files by using the [[VMS_IDE_Commands|&#039;&#039;&#039;VMS-IDE: Upload all&#039;&#039;&#039;]] command.&lt;br /&gt;
&lt;br /&gt;
===Building with Custom Procedure===&lt;br /&gt;
To build a project using a custom build procedure, edit the &#039;&#039;task.json&#039;&#039; file &lt;br /&gt;
&amp;lt;pre&amp;gt;{&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.buildProject&amp;quot;,&lt;br /&gt;
  &amp;quot;extension&amp;quot;: &amp;quot;vmssoftware.synchronizer&amp;quot;,&lt;br /&gt;
  &amp;quot;parameter&amp;quot;: &amp;quot;myDebug&amp;quot;,&lt;br /&gt;
  &amp;quot;label&amp;quot;: &amp;quot;Build Procedure&amp;quot;,&lt;br /&gt;
  &amp;quot;problemMatcher&amp;quot;: []&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
where:&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; is the name of predefined build configuration.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; meaningful task name&lt;br /&gt;
All other parameters must be as shown in example.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: see Visual Studio Code [https://code.visualstudio.com/docs/editor/tasks documentation] for more information on &#039;&#039;&#039;tasks&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=Debugging=&lt;br /&gt;
Use [[VMS_IDE_Debugger|&#039;&#039;&#039;Debugger&#039;&#039;&#039;]] view to debug OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Before running the debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start a debugging session, press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt;. If there is no &amp;quot;launch.json&amp;quot; file in the project directory, you will be asked to select the environment. Select &amp;lt;code&amp;gt;VMS Debugger&amp;lt;/code&amp;gt; from the popup list.&lt;br /&gt;
The &#039;&#039;&#039;launch.json&#039;&#039;&#039; file will be created and filled with the required information. There are two types of launch configuration - &#039;&#039;&#039;DEBUG&#039;&#039;&#039; and &#039;&#039;&#039;RUN&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;configurations&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;vms_dbg&amp;quot;,&lt;br /&gt;
            &amp;quot;request&amp;quot;: &amp;quot;launch&amp;quot;,&lt;br /&gt;
            &amp;quot;name&amp;quot;: &amp;quot;Debug&amp;quot;,&lt;br /&gt;
            &amp;quot;program&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;arguments&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
            &amp;quot;stopOnEntry&amp;quot;: true,&lt;br /&gt;
            &amp;quot;typeRun&amp;quot;: &amp;quot;DEBUG&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the &#039;&#039;&#039;program&#039;&#039;&#039; field, specify the relative path to the executable, for example &amp;lt;code&amp;gt;[.project.bin.release]hello.exe&amp;lt;/code&amp;gt;. &lt;br /&gt;
If the field is empty, &#039;&#039;&#039;VMS IDE&#039;&#039;&#039; will try to fill it with data from the project settings.&lt;br /&gt;
&lt;br /&gt;
To choose which configuration to use, go to &amp;quot;Debug&amp;quot; (&amp;lt;code&amp;gt;Ctrl-Shift-D&amp;lt;/code&amp;gt;) and select the appropriate configuration from the drop-down list.&lt;br /&gt;
Press &amp;lt;code&amp;gt;F5&amp;lt;/code&amp;gt; again to run debugger.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=1295</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=1295"/>
		<updated>2019-08-08T03:58:21Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Commands */&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:Vms-ide-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: 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: 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: Edit OpenVMS 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: 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: 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: 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: Re-build on VMS&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Rebuild 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: Re-build only this project&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Rebuild only the selected project on VMS&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: 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: 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: 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: 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: Upload all via Zip&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Upload project files using Zip&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: Quick uploading&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Perform changes on the remote machine made on the local machine since the extension started or last uploading/synchronization.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Auto-generated_MMS&amp;diff=1294</id>
		<title>Auto-generated MMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Auto-generated_MMS&amp;diff=1294"/>
		<updated>2019-08-08T03:56:17Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: Created page with &amp;quot; The order of default MMS creation: # Collect header files list # Collect source files list # Put header files list as &amp;#039;&amp;#039;&amp;#039;INCLUDES&amp;#039;&amp;#039;&amp;#039; into default MMS content # Put source fil...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The order of default MMS creation:&lt;br /&gt;
# Collect header files list&lt;br /&gt;
# Collect source files list&lt;br /&gt;
# Put header files list as &#039;&#039;&#039;INCLUDES&#039;&#039;&#039; into default MMS content&lt;br /&gt;
# Put source files list as &#039;&#039;&#039;SOURCES&#039;&#039;&#039; into default MMS content&lt;br /&gt;
# Define main target depending on type of project&lt;br /&gt;
# Define object dependencies&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: For some languages the order of compilation is important. To do this just reorder object files in main target definition.&lt;br /&gt;
&lt;br /&gt;
Variables &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, &#039;&#039;&#039;OUTDIR&#039;&#039;&#039; and &#039;&#039;&#039;CONFIG&#039;&#039;&#039; will be defined by extension at the moment of compilation.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
! header                                                                      !auto&lt;br /&gt;
! Do not modify this file. It may be overwritten automatically.               !auto&lt;br /&gt;
! includes                                                                    !auto&lt;br /&gt;
INCLUDES=                                                                     !auto&lt;br /&gt;
! sources                                                                     !auto&lt;br /&gt;
SOURCES= -                                                                    !auto&lt;br /&gt;
myprog.cob                                                                    !auto&lt;br /&gt;
! dependencies                                                                !auto&lt;br /&gt;
.FIRST                                                                        !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
! compiler/linker options                                                     !auto&lt;br /&gt;
.IF DEBUG                                                                     !auto&lt;br /&gt;
COMPILEFLAGS = /DEBUG/NOOP/LIST=$(MMS$TARGET_NAME)/OBJECT=$(MMS$TARGET)       !auto&lt;br /&gt;
LINKFLAGS = /DEBUG/MAP=$(MMS$TARGET_NAME)/EXECUTABLE=$(MMS$TARGET)            !auto&lt;br /&gt;
.ELSE                                                                         !auto&lt;br /&gt;
COMPILEFLAGS = /OBJECT=$(MMS$TARGET)                                          !auto&lt;br /&gt;
LINKFLAGS = /EXECUTABLE=$(MMS$TARGET)                                         !auto&lt;br /&gt;
.ENDIF                                                                        !auto&lt;br /&gt;
! directives                                                                  !auto&lt;br /&gt;
.SILENT                                                                       !auto&lt;br /&gt;
OUT_DIR = .$(OUTDIR).$(CONFIG)                                                !auto&lt;br /&gt;
OBJ_DIR = $(OUT_DIR).obj                                                      !auto&lt;br /&gt;
.SUFFIXES                                                                     !auto&lt;br /&gt;
.SUFFIXES .OBJ .CPP .C .CLD .MSG .BLI .COB .PAS .BAS .F77 .F90 .FOR .B32 .CBL !auto&lt;br /&gt;
.CPP.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    $(CXX) $(COMPILEFLAGS) $(MMS$SOURCE)                                      !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.C.OBJ                                                                        !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    $(CC) $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.CLD.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    SET COMMAND/OBJECT=$(MMS$TARGET) $(MMS$SOURCE)                            !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.MSG.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    MESSAGE /OBJECT=$(MMS$TARGET) $(MMS$SOURCE)                               !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.BLI.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    BLISS $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.B32.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    BLISS $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.COB.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    COBOL $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.CBL.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    COBOL $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.PAS.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    PASCAL $(COMPILEFLAGS) $(MMS$SOURCE)                                      !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.BAS.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    BASIC $(COMPILEFLAGS) $(MMS$SOURCE)                                       !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.F77.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE)                                     !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.F90.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE)                                     !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.FOR.OBJ                                                                      !auto&lt;br /&gt;
    pipe create/dir $(DIR $(MMS$TARGET)) | copy SYS$INPUT nl:                 !auto&lt;br /&gt;
    FORTRAN $(COMPILEFLAGS) $(MMS$SOURCE)                                     !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
.DEFAULT                                                                      !auto&lt;br /&gt;
    ! Source $(MMS$TARGET) not yet added                                      !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
! main target                                                                 !auto&lt;br /&gt;
[$(OUT_DIR)]$(NAME).EXE :  -                                                  !auto&lt;br /&gt;
[$(OBJ_DIR)]myprog.obj                                                        !auto&lt;br /&gt;
    CXXLINK $(LINKFLAGS) $(MMS$SOURCE_LIST)                                   !auto&lt;br /&gt;
                                                                              !auto&lt;br /&gt;
! objects                                                                     !auto&lt;br /&gt;
[$(OBJ_DIR)]myprog.obj : myprog.cob $(INCLUDES)                               !auto&lt;br /&gt;
                                                                             &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=1293</id>
		<title>VMS IDE Project Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=1293"/>
		<updated>2019-08-07T10:59:05Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Settings description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in the &#039;&#039;&#039;VMS IDE&#039;&#039;&#039;, you need to configure your workspace, set project folders, and select the type of configuration that will be used.&lt;br /&gt;
&lt;br /&gt;
==Project folder==&lt;br /&gt;
Use &#039;&#039;&#039;Explorer&#039;&#039;&#039; view to manage source code, resources, and settings files for your projects.&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| [[File:Vms ide explorer.png|200px|thumb|none|VMS IDE Explorer]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; | The project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your local machine. &lt;br /&gt;
# In Visual Studio Code, click the &#039;&#039;Explorer&#039;&#039; icon (&amp;lt;code&amp;gt;Ctrl+Shift+E&amp;lt;/code&amp;gt;) in the Activity Bar&lt;br /&gt;
# Click &#039;&#039;Open Folder&#039;&#039; and select the previously created folder.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you are working on a complex project with dependencies, you will likely need to add other projects to the current workspace.&amp;lt;br&amp;gt;&lt;br /&gt;
For this, just add another project folder as shown below.&lt;br /&gt;
# Create another folder that will store files of the second project&lt;br /&gt;
# In Visual Studio Code, select &#039;&#039;File &amp;gt; Add folder to workspace&#039;&#039; and select the folder you created.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==End of line==&lt;br /&gt;
Specify the End of Line character that will be used across all source files. &#039;&#039;&#039;You must use &amp;lt;code&amp;gt;LF&amp;lt;/code&amp;gt;&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Text Editor &amp;gt; Files &amp;gt; Eol&#039;&#039; (the default end of line character) and set it to &#039;&#039;\n&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
==Type of configuration==&lt;br /&gt;
Select the type of configuration for your project. The recommended type is &#039;&#039;&#039;FS&#039;&#039;&#039;.&lt;br /&gt;
# Open Visual Studio Code settings (&amp;lt;code&amp;gt;Ctrl+,&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Navigate to &#039;&#039;Extensions &amp;gt; VMS-IDE &amp;gt; Config-helper › Settings: Using&#039;&#039;, and select one of the options:&lt;br /&gt;
#* &#039;&#039;&#039;FS&#039;&#039;&#039; - save settings in local JSON files.&lt;br /&gt;
#* &#039;&#039;&#039;VFS&#039;&#039;&#039; - save setting in VS Code virtual file system.&lt;br /&gt;
#* &#039;&#039;&#039;VCS&#039;&#039;&#039; - manage settings using VS Code provided API.&lt;br /&gt;
# Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &#039;&#039;Reload window&#039;&#039; command or close Visual Studio Code and open it again.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
! FS and VFS &lt;br /&gt;
! VCS&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px;&amp;quot; | [[File:Syncronizer-settings-fs.png|600px|none|thumb|]]&lt;br /&gt;
|style=&amp;quot;padding-left: 20px;&amp;quot;  | [[File:Syncronizer-settings-vsc.png|600px|thumb|none|]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;padding-right: 20px; text-align: center&amp;quot; | Settings are stored in a JSON file that can be easily modified in the editor.&lt;br /&gt;
|style=&amp;quot;padding-left: 20px; text-align: center&amp;quot;  | Settings can be adjusted using Visual Studio Code settings page.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Changing the type of configuration does not copy existing settings from one location to another.&lt;br /&gt;
&lt;br /&gt;
=SSH Configuration=&lt;br /&gt;
The SSH connection to an OpenVMS machine is required for syncing source files, building, and debugging projects. There are two ways of managing SSH connection settings.&lt;br /&gt;
&lt;br /&gt;
; Command : Press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &amp;lt;code&amp;gt;VMS-IDE: Edit ssh-helper settings&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
; Project Explorer : &lt;br /&gt;
:# Open [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]]&lt;br /&gt;
:# Select your project from the list&lt;br /&gt;
:# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click &#039;&#039;SSH &amp;gt; host&#039;&#039; and select &#039;&#039;Edit&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==SSH Settings description==&lt;br /&gt;
See [[SSH_Settings|&#039;&#039;SSH settings&#039;&#039;]] for more details.&lt;br /&gt;
&lt;br /&gt;
=Project Configuration=&lt;br /&gt;
To open the project settings, press &amp;lt;code&amp;gt;F1&amp;lt;/code&amp;gt; and run the &amp;lt;code&amp;gt;VMS-IDE: Edit OpenVMS project settings&amp;lt;/code&amp;gt; command or use [[VMS_IDE_Project_Explorer|&#039;&#039;&#039;Project Explorer&#039;&#039;&#039;]] view.&lt;br /&gt;
&lt;br /&gt;
==Adjusting Settings==&lt;br /&gt;
The project configuration procedure varies depending on the selected type of configuration.&lt;br /&gt;
&lt;br /&gt;
; FS or VFS : The Edit command loads current settings from memory and saves them to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039;, then opens the file for editing.&lt;br /&gt;
; VCS : The Edit command opens Workspace settings. Navigate to &#039;&#039;&#039;Synchronizer&#039;&#039;&#039; section and adjust the settings.&lt;br /&gt;
&lt;br /&gt;
==Settings description==&lt;br /&gt;
The settings are split into three sections:&lt;br /&gt;
* [[Project_Settings|&#039;&#039;Project&#039;&#039;]] - general project settings &lt;br /&gt;
* [[Synchronize_Configuration|&#039;&#039;Synchronize&#039;&#039;]] - synchronizer specific settings&lt;br /&gt;
* [[Build_Configurations|&#039;&#039;Builds&#039;&#039;]] - settings for build project&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=1292</id>
		<title>Synchronize Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=1292"/>
		<updated>2019-08-07T10:58:37Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Synchronize Configuration Example=&lt;br /&gt;
&amp;lt;pre&amp;gt;&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;
        &amp;quot;setTimeByShell&amp;quot;: true,&lt;br /&gt;
        &amp;quot;unzipCmd&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Settings Description=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Strategy for downloading remote files which are newer than local copies.&lt;br /&gt;
** &#039;&#039;&#039;overwrite&#039;&#039;&#039; - remote files will overwrite local files.&lt;br /&gt;
** &#039;&#039;&#039;skip&#039;&#039;&#039; - remote files will not be downloaded but an appropriate warning message will be shown.&lt;br /&gt;
** &#039;&#039;&#039;edit&#039;&#039;&#039; - remote files will be downloaded into memory and the edit-merge window will be opened to allow the user decide what changes to save.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;keepAlive&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Shell and SFTP connections will not be closed after synchronization is done and will be reused for the next synchronization.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;preferZip&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Prefer ZIP for uploading source files.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;forceLocalTime&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Set local time instead of UTC for archived files. Used when synchronizing via ZIP.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;purge&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Execute &amp;lt;code&amp;gt;PURGE&amp;lt;/code&amp;gt; command after uploading source.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;setTimeAttempts&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The maximum number of attempts to set file time. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: the first attempt to set file time may be rejected because the file is busy. VMS IDE will re-try to set time again. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;setTimeByShell&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SFTP server on the OpenVMS host did not set the file time, VMS IDE can use DCL commands to do this.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;unzipCmd&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Is used to run a user-defined command to unzip archive on the remote side; default is &amp;lt;code&amp;gt;unzip -oo &amp;quot;-D&amp;quot;&amp;lt;/code&amp;gt; and file name added at the end of the command.&lt;br /&gt;
&lt;br /&gt;
If you have full project on OpenVMS and want to download it to PC, set &amp;lt;code&amp;gt;&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;&amp;lt;/code&amp;gt; to &#039;&#039;&#039;overwrite&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
If you have full project on PC and use OpenVMS only for compiling and debugging, set &amp;lt;code&amp;gt;&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;&amp;lt;/code&amp;gt; to &#039;&#039;&#039;skip&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
If project on OpenVMS may be changed outside and may be more recent, set &amp;lt;code&amp;gt;&#039;&#039;&#039;downloadNewFiles&#039;&#039;&#039;&amp;lt;/code&amp;gt; to &#039;&#039;&#039;edit&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1291</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1291"/>
		<updated>2019-08-07T10:51:38Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. How to configure connection using SSH key see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
&lt;br /&gt;
Required fields to connect: &lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To provide security user may use one of two ways:&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;Key File&#039;&#039;&#039; is empty, &#039;&#039;&#039;Password&#039;&#039;&#039; will be used. If &#039;&#039;&#039;Password&#039;&#039;&#039; is empty too a password input box will be shown on connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
To add new host into collection do the following:&lt;br /&gt;
* Copy whole content of {...} from &#039;&#039;&#039;connection&#039;&#039;&#039; into &#039;&#039;&#039;host-collection&#039;&#039;&#039;-&amp;gt;&#039;&#039;&#039;hosts&#039;&#039;&#039;&lt;br /&gt;
* Add field &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
* Adjust fields for this new host in collection&lt;br /&gt;
* Write &amp;lt;&#039;&#039;label&#039;&#039;&amp;gt; into &#039;&#039;&#039;host&#039;&#039;&#039; field in &#039;&#039;&#039;connection&#039;&#039;&#039; to use this new host as default&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&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;First&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;1.1.1.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;pass&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;First&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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
&lt;br /&gt;
Specifies command to start SSH terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start SSH terminal. It is possible to insert variables into command. The syntax is: ${variable} or ${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}. Where variable can be following: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039; and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: password may come from settings or if user entered it in UI prompt. Passwords entered in SSH terminal aren&#039;t saved.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1290</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1290"/>
		<updated>2019-08-07T10:50:52Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Named build configurations ==&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;DEBUG&amp;quot;,&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;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;
                &amp;quot;label&amp;quot;: &amp;quot;myOwnRelease&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;My own build release&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;executable.mms&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;&amp;quot; &lt;br /&gt;
            },&lt;br /&gt;
            {&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;myOwnDebug&amp;quot;,&lt;br /&gt;
                &amp;quot;description&amp;quot;: &amp;quot;My own build debug&amp;quot;,&lt;br /&gt;
                &amp;quot;command&amp;quot;: &amp;quot;build.com&amp;quot;,&lt;br /&gt;
                &amp;quot;parameter&amp;quot;: &amp;quot;DEBUG&amp;quot; &lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique label, name of build configuration. Also this value is used as output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command to build, clean project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass into command&lt;br /&gt;
&lt;br /&gt;
In case of command is empty the default auto-created MMS file is used to build project. Parameter is used to distinguish DEBUG and RELEASE.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is MMS file, it is processed via command &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;&#039;parameter&#039;&#039;&#039;&amp;quot;, so the parameter is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is COM file, it is executed like &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;&#039;parameter&#039;&#039;&#039;&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note:&#039;&#039;&#039; it is recommended that user-defined build procedure creates resulting files in &amp;lt;project root&amp;gt;/&amp;lt;output folder&amp;gt;/&amp;lt;build label&amp;gt; directory. So does default procedure.&lt;br /&gt;
&lt;br /&gt;
In the &#039;&#039;&#039;CLEAN&#039;&#039;&#039; operation &#039;&#039;&#039;parameter&#039;&#039;&#039; will be just &amp;quot;CLEAN&amp;quot; string.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Editing of &#039;&#039;&#039;builds&#039;&#039;&#039; is the same as editing of &#039;&#039;&#039;project settings&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To change current build configuration click &amp;quot;Change&amp;quot; on the &#039;&#039;&#039;buildName:&#039;&#039;&#039; line.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To debug a project, there must be a build configuration named &#039;&#039;&#039;DEBUG&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Changes in &#039;&#039;&#039;task2cmd&#039;&#039;&#039;: parameter for any build and clean command must be named build configuration label.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1289</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1289"/>
		<updated>2019-08-07T10:49:53Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Project Configuration Example=&lt;br /&gt;
&amp;lt;pre&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}&amp;quot;,&lt;br /&gt;
        &amp;quot;exclude&amp;quot;: &amp;quot;**/{node_modules,.vscode}/**&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&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;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;project&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;*.{cpp,c}&amp;quot;,&lt;br /&gt;
        &amp;quot;addLibraries&amp;quot;: &amp;quot;sys$library:IMAGELIB.OLB,sys$library:RDBMSGS.OLB&amp;quot;,&lt;br /&gt;
        &amp;quot;addIncludes&amp;quot;: &amp;quot;sys$library&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Settings Description=&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Break&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Keyboard key to pause debugging in VMS IDE debugger. The extension uses combination &amp;lt;code&amp;gt;CTRL+Key&amp;lt;/code&amp;gt; to pause debugging when user press &#039;&#039;&#039;Pause&#039;&#039;&#039; or &amp;lt;code&amp;gt;F6&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Builders&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for files used for building the project. Default is &amp;quot;*.{mms,com}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Exclude&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Folders excluded from synchronization with OpenVMS system.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Headers&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Header files. Default is &amp;quot;*.{h,hpp}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Listing&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Listing files that will be downloaded after the project is built for debugging purpose.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Outdir&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Output directory where object, listing and executable files will be stored when built. Is also used for temporary files. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Should be only the name of the folder, not a full or relative path. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Name&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Name for the executable file, auto-generated &#039;&#039;&#039;MMS&#039;&#039;&#039; file for builder, OPT file for linker, and COM file for defining logical names. &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Should be only one word.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Type&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Type of the project. Available types: &#039;&#039;&#039;executable&#039;&#039;&#039;, &#039;&#039;&#039;library&#039;&#039;&#039; or &#039;&#039;&#039;shareable&#039;&#039;&#039;. The building method depends on the type of the project and its dependencies.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Resource&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Files required for the project, but are not involved in the build process.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Root&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Directory of the project on remote OpenVMS machine in UNIX format relative the home folder.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Source&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Mask for the source files, e.g. &amp;quot;*.{c,cpp}&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional libraries&#039;&#039;&#039;&amp;lt;/code&amp;gt; - list of libraries in ODS-5 format, separated by commas.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional include folders&#039;&#039;&#039;&amp;lt;/code&amp;gt; - list of folders in ODS-5 format, separated by commas.&lt;br /&gt;
&lt;br /&gt;
==Adjusting setting==&lt;br /&gt;
# Change &amp;lt;code&amp;gt;&#039;&#039;&#039;Root&#039;&#039;&#039;&amp;lt;/code&amp;gt; field. For example, if project is (or should be) in &#039;&#039;&#039;WORK:[USER.DEMOS.SIMPLE]&#039;&#039;&#039; and home directory is &#039;&#039;&#039;WORK:[USER]&#039;&#039;&#039;, write &#039;&#039;&#039;demos/simple&#039;&#039;&#039;.&lt;br /&gt;
# Select appropriate &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Type&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Adjust &amp;lt;code&amp;gt;&#039;&#039;&#039;Project Name&#039;&#039;&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Builders&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Headers&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized and included into auto-generated MMS file as header files. The changing of one of them will result full rebuild of project.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Source&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized and included into auto-generated MMS file as source files.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Resource&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be synchronized but not included into auto-generated MMS file.&lt;br /&gt;
# Adjust &amp;lt;code&amp;gt;&#039;&#039;&#039;Exclude&#039;&#039;&#039;&amp;lt;/code&amp;gt;. If you have some files similar to described above which are not need to be synchronized and compiled.&lt;br /&gt;
# Check &amp;lt;code&amp;gt;&#039;&#039;&#039;Listing&#039;&#039;&#039;&amp;lt;/code&amp;gt;. These files will be downloaded after building. Files &amp;quot;*.lis,*.map&amp;quot; are required for debugger.&lt;br /&gt;
# If project depends on already installed in OpenVMS libraries, adjust &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional libraries&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;Additional include folders&#039;&#039;&#039;&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1288</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1288"/>
		<updated>2019-08-07T10:14:39Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file. How to configure connection using SSH key see [https://raymii.org/s/blog/SSH_public_key_authentication_on_OpenVMS.html SSH public key authentication on OpenVMS]&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
&lt;br /&gt;
Required fields to connect: &lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To provide security user may use one of two ways:&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If &#039;&#039;&#039;Key File&#039;&#039;&#039; is empty, &#039;&#039;&#039;Password&#039;&#039;&#039; will be used. If &#039;&#039;&#039;Password&#039;&#039;&#039; is empty too a password input box will be shown on connection attempt.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
To add new host into collection do the following:&lt;br /&gt;
* Copy whole content of {...} from &#039;&#039;&#039;connection&#039;&#039;&#039; into &#039;&#039;&#039;host-collection&#039;&#039;&#039;-&amp;gt;&#039;&#039;&#039;hosts&#039;&#039;&#039;&lt;br /&gt;
* Add field &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
* Adjust fields for this new host in collection&lt;br /&gt;
* Write &amp;lt;&#039;&#039;label&#039;&#039;&amp;gt; into &#039;&#039;&#039;host&#039;&#039;&#039; field in &#039;&#039;&#039;connection&#039;&#039;&#039; to use this new host as default&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&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;First&amp;gt;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false&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;1.1.1.1&amp;quot;,&lt;br /&gt;
                &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
                &amp;quot;password&amp;quot;: &amp;quot;pass&amp;quot;,&lt;br /&gt;
                &amp;quot;port&amp;quot;: 22,&lt;br /&gt;
                &amp;quot;username&amp;quot;: &amp;quot;user&amp;quot;,&lt;br /&gt;
                &amp;quot;skipSignatureVerification&amp;quot;: true,&lt;br /&gt;
                &amp;quot;label&amp;quot;: &amp;quot;First&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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
&#039;&#039;&#039;New in version 0.0.22&#039;&#039;&#039;&lt;br /&gt;
Specifies command to start SSH terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start SSH terminal. It is possible to insert variables into command. The syntax is: ${variable} or ${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}. Where variable can be following: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039; and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: password may come from settings or if user entered it in UI prompt. Passwords entered in SSH terminal aren&#039;t saved.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1287</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1287"/>
		<updated>2019-08-07T09:50:01Z</updated>

		<summary type="html">&lt;p&gt;Sergey.vorfolomeev: /* Host Collection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An SSH connection to an OpenVMS machine is required for syncing source code files, building, running and debugging projects. Depending on the type of configuration, SSH connection settings can be edited either in the &#039;&#039;vmssoftware.ssh-helper-settings.json&#039;&#039; file located in &#039;&#039;/.vscode&#039;&#039; directory or via Visual Studio Code settings page.&lt;br /&gt;
&lt;br /&gt;
=SSH Settings Template=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;connection&amp;quot;: {&lt;br /&gt;
        &amp;quot;host&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;keyFile&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;password&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;&amp;quot;,&lt;br /&gt;
        &amp;quot;skipSignatureVerification&amp;quot;: false,&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;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;ssh -oHostKeyAlgorithms=+ssh-dss ${keyFile?-i ${keyFile}} ${username?${username}@}${host}&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Connection=&lt;br /&gt;
The connection section sets the current connection details.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Host&#039;&#039;&#039;&amp;lt;/code&amp;gt; - IP-address or name of OpenVMS machine. It also can refer to the label of a connection specified in host-collection section - should be enclosed in angle brackets  &amp;lt;code&amp;gt;(&amp;lt;hostname&amp;gt;)&amp;lt;/code&amp;gt;. In that&lt;br /&gt;
case, all other fields are ignored. &lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Port&#039;&#039;&#039;&amp;lt;/code&amp;gt; - The port number to use for the SSH connection. Default is 22.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Username&#039;&#039;&#039;&amp;lt;/code&amp;gt; - User account that will be used for the SSH connection.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Password&#039;&#039;&#039;&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 connection attempt.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Key File&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Path to SSH private key file.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;skipSignatureVerification&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Skip signature verification. Set it to &#039;true&#039; if an error &#039;Handshake failed: signature verification failed&#039; occurs.&lt;br /&gt;
&lt;br /&gt;
=Host Collection=&lt;br /&gt;
If you need to connect to different servers when working on your project, it makes sense to list all the required connections and then just pick the one that you need by using its label as the &#039;&#039;&#039;host&#039;&#039;&#039; name in the &#039;&#039;&#039;connection&#039;&#039;&#039; section.&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: If you use VSC type of configuration, you will not be able to specify host collection in UI. Instead, you need to click &amp;quot;Edit in settings.json&amp;quot; and specify them in the &#039;&#039;&#039;settings.json&#039;&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
[[File:Ssh collection hosts.png|Ssh collection hosts.png]]&lt;br /&gt;
&lt;br /&gt;
To add host to collection do the following:&lt;br /&gt;
* Copy whole {...} from Host&lt;br /&gt;
* Add field &#039;&#039;&#039;label&#039;&#039;&#039;&lt;br /&gt;
* Adjust fields&lt;br /&gt;
&lt;br /&gt;
Result:&lt;br /&gt;
&lt;br /&gt;
=Timeouts=&lt;br /&gt;
Specifies SSH connection timesouts.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Cmd Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - Timeout for command response. If a command is sent to the OpenVMS system and the OpenVMS system does not a send response for the specified period of time, it will be considered as rejected.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Feedback Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH connection does not send feedback for this period, the specified password will be considered as invalid.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Welcome Timeout&#039;&#039;&#039;&amp;lt;/code&amp;gt; - If the SSH shell prompt is not received within this period of time, the shell will be closed.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: Value &amp;quot;0&amp;quot; means, that timeout is not used. &lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;WARN&#039;&#039;&#039;: Do not change timeout settings unless necessary.&lt;br /&gt;
&lt;br /&gt;
=Terminal=&lt;br /&gt;
&#039;&#039;&#039;New in version 0.0.22&#039;&#039;&#039;&lt;br /&gt;
Specifies command to start SSH terminal.&lt;br /&gt;
* &amp;lt;code&amp;gt;&#039;&#039;&#039;Command&#039;&#039;&#039;&amp;lt;/code&amp;gt; - command to start SSH terminal. It is possible to insert variables into command. The syntax is: ${variable} or ${varable?&amp;lt;text if variable isn&#039;t empty&amp;gt;}. Where variable can be following: &#039;&#039;&#039;host&#039;&#039;&#039;, &#039;&#039;&#039;port&#039;&#039;&#039;, &#039;&#039;&#039;username&#039;&#039;&#039;, &#039;&#039;&#039;password&#039;&#039;&#039; and &#039;&#039;&#039;keyFile&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: password may come from settings or if user entered it in UI prompt. Passwords entered in SSH terminal aren&#039;t saved.&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Sergey.vorfolomeev</name></author>
	</entry>
</feed>