<?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=Andrey.logachev</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=Andrey.logachev"/>
	<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/Special:Contributions/Andrey.logachev"/>
	<updated>2026-06-01T09:45:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1469</id>
		<title>COBOL light-weight IntelliSense</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1469"/>
		<updated>2019-11-20T08:00:40Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Cobol-intellisense-1.png|frame|left|COBOL syntax highlighting]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Symbols definition on hover over&lt;br /&gt;
* Symbols navigation&lt;br /&gt;
* Symbols renaming&lt;br /&gt;
* Scope resolution&lt;br /&gt;
* Code completion&lt;br /&gt;
* Syntax highlighting&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* &#039;&#039;&#039;REPLACE&#039;&#039;&#039; statement is not supported&lt;br /&gt;
* &#039;&#039;&#039;COPY&#039;&#039;&#039; statement handles only local files without &#039;&#039;&#039;REPLACING&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;EXTERNAL&#039;&#039;&#039; symbols resolved only for local files (including dependent local COBOL projects)&lt;br /&gt;
* Operand types are not checked (planned)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1468</id>
		<title>COBOL light-weight IntelliSense</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1468"/>
		<updated>2019-11-20T07:58:50Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Limitations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Cobol-intellisense-1.png|frame|left|COBOL grammar]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Symbols definition on hover over&lt;br /&gt;
* Symbols navigation&lt;br /&gt;
* Symbols renaming&lt;br /&gt;
* Scope resolution&lt;br /&gt;
* Code completion&lt;br /&gt;
* Syntax highlighting&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* &#039;&#039;&#039;REPLACE&#039;&#039;&#039; statement is not supported&lt;br /&gt;
* &#039;&#039;&#039;COPY&#039;&#039;&#039; statement handles only local files without &#039;&#039;&#039;REPLACING&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;EXTERNAL&#039;&#039;&#039; symbols resolved only for local files (including dependent local COBOL projects)&lt;br /&gt;
* Operand types are not checked (planned)&lt;br /&gt;
* Some syntax errors may not be highlighted (and not all highlighted words are in error state)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Force-sync-1.png&amp;diff=1467</id>
		<title>File:Force-sync-1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Force-sync-1.png&amp;diff=1467"/>
		<updated>2019-11-20T07:44:30Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: Andrey.logachev uploaded a new version of File:Force-sync-1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Force-sync-1&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Tips&amp;diff=1466</id>
		<title>VMS IDE Tips</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Tips&amp;diff=1466"/>
		<updated>2019-11-20T07:42:47Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tip &amp;amp; Tricks ==&lt;br /&gt;
&lt;br /&gt;
; Force synchronized status &lt;br /&gt;
: When VS Code opens a project, the source code is in &#039;&#039;&#039;undefined&#039;&#039;&#039; synchronization state. If you are sure your code on the VMS system is the same as on your PC, you may run the &#039;&#039;&#039;Force synchronized status&#039;&#039;&#039; command. &lt;br /&gt;
: This command operates only with the project selected in the &#039;&#039;&#039;Project explorer&#039;&#039;&#039;.&lt;br /&gt;
: [[File:Force-sync-1.png|800px|thumb|none|Force-sync]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Fortran_syntax_highlighting&amp;diff=1465</id>
		<title>Fortran syntax highlighting</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Fortran_syntax_highlighting&amp;diff=1465"/>
		<updated>2019-11-20T07:38:01Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Fortran-1.png|Fortran-syntax-example|frame|left]] [[File:Fortran-2.png|frame|left|Syntax check]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
; Autocomplete : Code autocompletion helps you write valid code in a more efficient way.&lt;br /&gt;
; Error checking : Checks syntax errors in real-time.&lt;br /&gt;
; Jump to definition (variables, routines) : Code navigation lets you quickly navigate Fortran projects (context menu).&lt;br /&gt;
:* Go to Definition (&amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt;) - Go to the source code of a symbol definition.&lt;br /&gt;
:* Peek Definition (&amp;lt;code&amp;gt;Alt+F12&amp;lt;/code&amp;gt;) - Bring up a Peek window that shows the definition of a symbol.&lt;br /&gt;
:* Peek References (&amp;lt;code&amp;gt;Shift+F12&amp;lt;/code&amp;gt;) - Bring up a Peek window that shows all references to a symbol.&lt;br /&gt;
:* Find All References (&amp;lt;code&amp;gt;Shift+Alt+F12&amp;lt;/code&amp;gt;) - Show all references to a symbol.&lt;br /&gt;
&lt;br /&gt;
; Rename (variables, routines) : Rename feature lets you quickly rename symbols in Fortran projects (context menu).&lt;br /&gt;
: Press &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; to rename the symbol under the cursor across your Fortran project.&lt;br /&gt;
&lt;br /&gt;
; Hover information : Hover over a Fortran symbol to quickly see its type information. &lt;br /&gt;
: You can also show the hover info at the current cursor position with the &amp;lt;code&amp;gt;Ctrl+K Ctrl+I&amp;lt;/code&amp;gt; keyboard shortcut.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1464</id>
		<title>COBOL light-weight IntelliSense</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1464"/>
		<updated>2019-11-20T07:37:44Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Cobol-intellisense-1.png|frame|left|COBOL grammar]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
* Symbols definition on hover over&lt;br /&gt;
* Symbols navigation&lt;br /&gt;
* Symbols renaming&lt;br /&gt;
* Scope resolution&lt;br /&gt;
* Code completion&lt;br /&gt;
* Syntax highlighting&lt;br /&gt;
&lt;br /&gt;
===Limitations===&lt;br /&gt;
* REPLACE statement is not supported&lt;br /&gt;
* COPY statement handles only local files without REPLACING&lt;br /&gt;
* EXTERNAL symbols resolved only for local files (including dependent local COBOL projects)&lt;br /&gt;
* Procedure parameters are not checked (planned)&lt;br /&gt;
* Operand types are not checked (planned)&lt;br /&gt;
* Some syntax errors may not be highlighted (and not all highlighted words are in error state)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Fortran_syntax_highlighting&amp;diff=1463</id>
		<title>Fortran syntax highlighting</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Fortran_syntax_highlighting&amp;diff=1463"/>
		<updated>2019-11-20T07:34:08Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VMS IDE supports syntax highlighting for Fortran.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Fortran-1.png|Fortran-syntax-example|frame|left]] [[File:Fortran-2.png|frame|left|Syntax check]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Features===&lt;br /&gt;
; Autocomplete : Code autocompletion helps you write valid code in a more efficient way.&lt;br /&gt;
; Error checking : Checks syntax errors in real-time.&lt;br /&gt;
; Jump to definition (variables, routines) : Code navigation lets you quickly navigate Fortran projects (context menu).&lt;br /&gt;
:* Go to Definition (&amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt;) - Go to the source code of a symbol definition.&lt;br /&gt;
:* Peek Definition (&amp;lt;code&amp;gt;Alt+F12&amp;lt;/code&amp;gt;) - Bring up a Peek window that shows the definition of a symbol.&lt;br /&gt;
:* Peek References (&amp;lt;code&amp;gt;Shift+F12&amp;lt;/code&amp;gt;) - Bring up a Peek window that shows all references to a symbol.&lt;br /&gt;
:* Find All References (&amp;lt;code&amp;gt;Shift+Alt+F12&amp;lt;/code&amp;gt;) - Show all references to a symbol.&lt;br /&gt;
&lt;br /&gt;
; Rename (variables, routines) : Rename feature lets you quickly rename symbols in Fortran projects (context menu).&lt;br /&gt;
: Press &amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt; to rename the symbol under the cursor across your Fortran project.&lt;br /&gt;
&lt;br /&gt;
; Hover information : Hover over a Fortran symbol to quickly see its type information. &lt;br /&gt;
: You can also show the hover info at the current cursor position with the &amp;lt;code&amp;gt;Ctrl+K Ctrl+I&amp;lt;/code&amp;gt; keyboard shortcut.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1462</id>
		<title>COBOL light-weight IntelliSense</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=COBOL_light-weight_IntelliSense&amp;diff=1462"/>
		<updated>2019-11-20T07:20:07Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Cobol-intellisense-1.png|frame|left|COBOL grammar]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features&#039;&#039;&#039;&lt;br /&gt;
* Symbols definition on hover over&lt;br /&gt;
* Symbols navigation&lt;br /&gt;
* Symbols renaming&lt;br /&gt;
* Scope resolution&lt;br /&gt;
* Code completion&lt;br /&gt;
* Syntax highlighting&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Limitations&#039;&#039;&#039;&lt;br /&gt;
* REPLACE statement is not supported&lt;br /&gt;
* COPY statement handles only local files without REPLACING&lt;br /&gt;
* EXTERNAL symbols resolved only for local files (including dependent local COBOL projects)&lt;br /&gt;
* Procedure parameters are not checked (planned)&lt;br /&gt;
* Operand types are not checked (planned)&lt;br /&gt;
* Some syntax errors may not be highlighted (and not all highlighted words are in error state)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1459</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=1459"/>
		<updated>2019-11-19T16:47:21Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1.3.0 ===&lt;br /&gt;
* Light-weight IntelliSense for Fortran and Cobol.&lt;br /&gt;
&lt;br /&gt;
=== 1.2.6 ===&lt;br /&gt;
* Fixed the issue when the extension crashed when opening a 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;
* Added function breakpoints. &lt;br /&gt;
* Added data breakpoints (without user interface).&lt;br /&gt;
&lt;br /&gt;
=== 1.2.2 ===&lt;br /&gt;
* Fix the issue with display/set unicode string in &#039;&#039;&#039;Java&#039;&#039;&#039; debugger.&lt;br /&gt;
* JVM Debugger can now 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;
* Added 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1458</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1458"/>
		<updated>2019-11-19T16:44:53Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS and JVM projects.&lt;br /&gt;
* &#039;&#039;&#039;Highlighting&#039;&#039;&#039; for &#039;&#039;&#039;MMS&#039;&#039;&#039;, &#039;&#039;&#039;CLD&#039;&#039;&#039;, &#039;&#039;&#039;MSG&#039;&#039;&#039;, &#039;&#039;&#039;Pascal&#039;&#039;&#039;, &#039;&#039;&#039;Fortran&#039;&#039;&#039; and &#039;&#039;&#039;Cobol&#039;&#039;&#039; source files.&lt;br /&gt;
* &#039;&#039;&#039;Light-weight IntelliSense&#039;&#039;&#039; for &#039;&#039;&#039;CLD&#039;&#039;&#039;, &#039;&#039;&#039;MSG&#039;&#039;&#039;, [[Pascal syntax highlighting|&#039;&#039;&#039;Pascal&#039;&#039;&#039;]], &#039;&#039;&#039;Fortran&#039;&#039;&#039; and [[COBOL light-weight IntelliSense|&#039;&#039;&#039;Cobol&#039;&#039;&#039;]].&lt;br /&gt;
* Supported languages for &#039;&#039;&#039;debugging&#039;&#039;&#039;: &#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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1380</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=1380"/>
		<updated>2019-09-10T10:09:01Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 1.2.6 ===&lt;br /&gt;
* Fixed the issue when the extension is crashed while opening a 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;
* Added function breakpoints. &lt;br /&gt;
* Added data breakpoints (without user interface).&lt;br /&gt;
&lt;br /&gt;
=== 1.2.2 ===&lt;br /&gt;
* Fix the issue with display/set unicode string in &#039;&#039;&#039;Java&#039;&#039;&#039; debugger.&lt;br /&gt;
* JVM Debugger can now 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;
* Added 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1372</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=1372"/>
		<updated>2019-09-04T17:34:48Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 1.2.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1371</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=1371"/>
		<updated>2019-09-04T17:32:40Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 1.2.3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&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, collecting 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Change_Log&amp;diff=1365</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=1365"/>
		<updated>2019-09-02T18:30:43Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== 1.2.3 ===&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, collecting 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1364</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=1364"/>
		<updated>2019-09-02T18:16:41Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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;f&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_for_Java_(Kotlin,_Scala)&amp;diff=1358</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=1358"/>
		<updated>2019-09-01T20:55:05Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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 the &#039;&#039;&#039;launch.json&#039;&#039;&#039; file existance:&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=1357</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=1357"/>
		<updated>2019-09-01T20:22:24Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1356</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1356"/>
		<updated>2019-09-01T19:13:47Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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. &#039;&#039;&#039;Note:&#039;&#039;&#039; the building method depends on the type of the project and its dependencies. Available types: &lt;br /&gt;
** &#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; &lt;br /&gt;
** &#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. &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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Pascal_syntax_highlighting&amp;diff=1355</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=1355"/>
		<updated>2019-09-01T19:08:57Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;VMS IDE supports syntax highlighting for Pascal.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Pascal-syntax-1.png|Pascal-syntax-example|frame|left]] [[File:Pascal-syntax-2.png|frame|left|Syntax check]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features&#039;&#039;&#039;&lt;br /&gt;
* Dynamic syntax check&lt;br /&gt;
* Symbol source in a popup&lt;br /&gt;
* Jump to symbol definition (&amp;lt;code&amp;gt;F12&amp;lt;/code&amp;gt;)&lt;br /&gt;
* [https://code.visualstudio.com/docs/editor/editingevolved#_peek Peek] definition (&amp;lt;code&amp;gt;Alt-F12&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Find all references (&amp;lt;code&amp;gt;Shift-Alt-F12&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Rename symbol (&amp;lt;code&amp;gt;F2&amp;lt;/code&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1328</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1328"/>
		<updated>2019-08-21T14:08:10Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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 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;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&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;.&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=1327</id>
		<title>Synchronize Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Synchronize_Configuration&amp;diff=1327"/>
		<updated>2019-08-21T14:00:14Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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 the full project on OpenVMS and want to download it to your local machine, 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 the full project on your local machine 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 the project on OpenVMS can be changed outside and may be newer than the local copy, 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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1326</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1326"/>
		<updated>2019-08-21T13:54:37Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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. &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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1325</id>
		<title>SSH Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=SSH_Settings&amp;diff=1325"/>
		<updated>2019-08-21T13:53:38Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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: ${variable} or ${varable?&amp;lt;text if variable isn&#039;t empty&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1322</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1322"/>
		<updated>2019-08-20T10:40:14Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Auto-generated_MMS&amp;diff=1321</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=1321"/>
		<updated>2019-08-20T10:30:15Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The default MMS file generated by &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt; command includes the following operations:&lt;br /&gt;
# Collect the list of header files&lt;br /&gt;
# Collect the list of source files&lt;br /&gt;
# Add header files list as &#039;&#039;&#039;INCLUDES&#039;&#039;&#039;&lt;br /&gt;
# Add source files list as &#039;&#039;&#039;SOURCES&#039;&#039;&#039;&lt;br /&gt;
# Define the main target depending on the project type&lt;br /&gt;
# Define object dependencies&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE&#039;&#039;&#039;: For some languages the compilation order is important. To change the order in which objects are compiled, reorder the object files in the main target definition.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; 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 the VMS IDE extension during 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=1320</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=1320"/>
		<updated>2019-08-18T15:47:55Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Description */&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;
&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1319</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1319"/>
		<updated>2019-08-18T15:40:24Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Quick Start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;VMS IDE&#039;&#039;&#039; is an integrated development environment that enables you to quickly and easily develop comprehensive applications for OpenVMS system. It provides a set of tools for developing, building, and debugging OpenVMS projects.&lt;br /&gt;
&lt;br /&gt;
=Features=&lt;br /&gt;
[[File:Vms ide.png|800px|thumb|none|VMS IDE]]&lt;br /&gt;
* Source code &#039;&#039;&#039;synchronization&#039;&#039;&#039; between the local machine and OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;SSH connection&#039;&#039;&#039; setup to the remote OpenVMS system.&lt;br /&gt;
* &#039;&#039;&#039;Projects Explorer&#039;&#039;&#039; as a simple and convenient way to manage OpenVMS projects.&lt;br /&gt;
* &#039;&#039;&#039;Debugger&#039;&#039;&#039; for OpenVMS 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;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&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;.&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;
===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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1318</id>
		<title>VMS IDE</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=VMS_IDE&amp;diff=1318"/>
		<updated>2019-08-18T15:39:34Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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 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;, and &#039;&#039;&#039;MSG&#039;&#039;&#039; files.&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;.&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|Installation]]&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;
===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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1317</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1317"/>
		<updated>2019-08-18T15:34:23Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Important notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Important notes ===&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; if you use the &#039;&#039;&#039;task2cmd&#039;&#039;&#039; to build your projects, use the build configuration label to set the task &#039;&#039;parameter&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1316</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1316"/>
		<updated>2019-08-18T15:32:31Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Important notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Important notes ===&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; when using the &#039;&#039;&#039;task2cmd&#039;&#039;&#039; to build your projects, use the build configuration label to set the task &#039;&#039;parameter&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1315</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1315"/>
		<updated>2019-08-18T15:32:12Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Custom build configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; It is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Important notes ===&lt;br /&gt;
 &#039;&#039;&#039;&#039;NOTE:&#039;&#039;&#039; when using the &#039;&#039;&#039;task2cmd&#039;&#039;&#039; to build your projects, use the build configuration label to set the task &#039;&#039;parameter&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1314</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1314"/>
		<updated>2019-08-18T15:31:22Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; it is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Important notes ===&lt;br /&gt;
 &#039;&#039;&#039;&#039;NOTE:&#039;&#039;&#039; when using the &#039;&#039;&#039;task2cmd&#039;&#039;&#039; to build your projects, use the build configuration label to set the task &#039;&#039;parameter&#039;&#039; value.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=1313</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=1313"/>
		<updated>2019-08-18T15:22:31Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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;
===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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Auto-generated_MMS&amp;diff=1312</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=1312"/>
		<updated>2019-08-18T15:06:01Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The default MMS file generated by &amp;lt;code&amp;gt;VMS-IDE: Create MMS&amp;lt;/code&amp;gt; command includes the following operations:&lt;br /&gt;
# Collect the list of header files&lt;br /&gt;
# Collect the list of source files&lt;br /&gt;
# Add header files list as &#039;&#039;&#039;INCLUDES&#039;&#039;&#039;&lt;br /&gt;
# Add source files list as &#039;&#039;&#039;SOURCES&#039;&#039;&#039;&lt;br /&gt;
# Define the main target depending on the project type&lt;br /&gt;
# Define object dependencies&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;Note&#039;&#039;&#039;: For some languages the compilation order is important. To change the order in which objects are compiled, reorder the object files in the 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 the VMS IDE extension during 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Auto-generating_MMS&amp;diff=1311</id>
		<title>Auto-generating MMS</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Auto-generating_MMS&amp;diff=1311"/>
		<updated>2019-08-18T13:39:28Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: Andrey.logachev moved page Auto-generating MMS to Auto-generated MMS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Auto-generated MMS]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Auto-generated_MMS&amp;diff=1310</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=1310"/>
		<updated>2019-08-18T13:39:28Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: Andrey.logachev moved page Auto-generating MMS to Auto-generated MMS&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Debugger&amp;diff=1309</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=1309"/>
		<updated>2019-08-13T20:01:45Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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;
&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;lt;/pre&amp;gt;&lt;br /&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=1308</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=1308"/>
		<updated>2019-08-13T19:35:01Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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 start of the extension or 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=File:Vms-ide-commands.png&amp;diff=1307</id>
		<title>File:Vms-ide-commands.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=File:Vms-ide-commands.png&amp;diff=1307"/>
		<updated>2019-08-13T19:23:35Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: Andrey.logachev uploaded a new version of File:Vms-ide-commands.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
VMS IDE Commands&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1306</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1306"/>
		<updated>2019-08-13T19:09:09Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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;. 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=1305</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=1305"/>
		<updated>2019-08-13T18:53:29Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on a 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 VMS project settings&amp;lt;/code&amp;gt; command or use the  [[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;]] - build configurations for the project&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1304</id>
		<title>Project Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Project_Settings&amp;diff=1304"/>
		<updated>2019-08-13T18:34:54Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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;: 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;. 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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=COBOL_grammar&amp;diff=1303</id>
		<title>COBOL grammar</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=COBOL_grammar&amp;diff=1303"/>
		<updated>2019-08-13T17:55:51Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Grammar works mostly for /NOANSI_FORMAT&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-style: none;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;1&amp;quot;| [[File:Cobol example 1.png|frame|left|COBOL grammar]]&lt;br /&gt;
|style=&amp;quot;vertical-align:top; padding-left: 20px;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Highlighting&#039;&#039;&#039;&lt;br /&gt;
* Divisions&lt;br /&gt;
* Sections&lt;br /&gt;
* Sentences&lt;br /&gt;
* Keywords&lt;br /&gt;
* Required words&lt;br /&gt;
* Optional words&lt;br /&gt;
* Reserved words&lt;br /&gt;
* Literals&lt;br /&gt;
* Operators&lt;br /&gt;
|}&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=1302</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=1302"/>
		<updated>2019-08-13T17:36:00Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &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;
&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; - whether the project is built or not (&#039;&#039;Built&#039;&#039; or &#039;&#039;Not built&#039;&#039;)&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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1301</id>
		<title>Build Configurations</title>
		<link rel="alternate" type="text/html" href="https://wiki.vmssoftware.com/index.php?title=Build_Configurations&amp;diff=1301"/>
		<updated>2019-08-13T17:21:13Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A project build configuration defines how the project should be built. You can have multiple build configurations for a project so that you can build the same code for different purposes.&amp;lt;br&amp;gt;&lt;br /&gt;
By default, there are two build configurations:&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039;, which is necessary for debugging&lt;br /&gt;
* &#039;&#039;&#039;RELEASE&#039;&#039;&#039;, which produces binaries for your project deployment. &lt;br /&gt;
If necessary, you can add custom build configurations for your project.&lt;br /&gt;
&lt;br /&gt;
== Working with build configurations ==&lt;br /&gt;
=== Editing build configurations ===&lt;br /&gt;
You can edit the list of build configurations the same way you edit the project settings:&lt;br /&gt;
# Press &#039;&#039;F1&#039;&#039; and run the &#039;&#039;VMS-IDE: Edit VMS project settings&#039;&#039; command or use the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# Find the &#039;&#039;builds&#039;&#039; section&lt;br /&gt;
# Make the required changes&lt;br /&gt;
&lt;br /&gt;
=== Changing current build configuration ===&lt;br /&gt;
To change the current build configuration:&lt;br /&gt;
# Open the [[VMS_IDE_Project_Explorer|Project Explorer]] view&lt;br /&gt;
# In the &#039;&#039;PROJECT DESCRIPTION&#039;&#039; section, right-click the &#039;&#039;buildName&#039;&#039; parameter, then select &#039;&#039;Change&#039;&#039;&lt;br /&gt;
# In the popup list select the required configuration.&lt;br /&gt;
&lt;br /&gt;
== Build configuration parameters ==&lt;br /&gt;
Each build configuration includes the following parameters:&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; - unique name of the build configuration. Note: the label is also used as the name of the output folder.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; - description of the build configuration&lt;br /&gt;
* &#039;&#039;&#039;command&#039;&#039;&#039; - command (MMS or COM file) to build or clean the project&lt;br /&gt;
* &#039;&#039;&#039;parameter&#039;&#039;&#039; - parameter to pass over to the command&lt;br /&gt;
&lt;br /&gt;
=== Default build configuration ===&lt;br /&gt;
If the command is empty, the default [[Auto-generating MMS|auto-created MMS]] file is used to build the project. The &#039;&#039;&#039;parameter&#039;&#039;&#039; value is used to specify the type of the build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Custom build configurations ===&lt;br /&gt;
If the user defined command is an &#039;&#039;&#039;MMS&#039;&#039;&#039; file, it is processed via &amp;quot;MMS/EXTENDED_SYNTAX/DESCR=&amp;lt;MMS file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command. The &#039;&#039;parameter&#039;&#039; value is treated as a target.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the user defined command is a &#039;&#039;&#039;COM&#039;&#039;&#039; file, it is executed with &amp;quot;@&amp;lt;COM file&amp;gt; &#039;&#039;parameter&#039;&#039;&amp;quot; command.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;NOTE:&#039;&#039;&#039; it is recommended that the 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.&lt;br /&gt;
&lt;br /&gt;
=== Clean operation ===&lt;br /&gt;
To run the &#039;&#039;&#039;CLEAN&#039;&#039;&#039; operation, use the default command (empty value) and set the &#039;&#039;&#039;parameter&#039;&#039;&#039; value to &amp;quot;CLEAN&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Important notes ===&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.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&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;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=1300</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=1300"/>
		<updated>2019-08-11T06:51:02Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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;]] - build configurations for the project&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Developing&amp;diff=701</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=701"/>
		<updated>2019-04-14T14:13:47Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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 OpenVMS machine, you need to download 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 &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;.&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;PROJET DEPENDENCIES&#039;&#039;&#039; section.&lt;br /&gt;
# In the &#039;&#039;&#039;PROJET DESCRIPTION&#039;&#039;&#039; section, select the required build type (&amp;lt;code&amp;gt;DEBUG&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;RELEASE&amp;lt;/code&amp;gt;) by clicking the &#039;&#039;&#039;buildType&#039;&#039;&#039; parameter.&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, .LTS) 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 file by using [[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;build.com&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 your build procedure (COM file)&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 debugger, make sure that you have actual DEBUG builds on the OpenVMS system.&lt;br /&gt;
&lt;br /&gt;
To start 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>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Explorer&amp;diff=700</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=700"/>
		<updated>2019-04-14T14:12:58Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* Project Description */&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;
&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====&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 types of its dependencies.&amp;lt;br&amp;gt;&lt;br /&gt;
For &#039;&#039;shareable&#039;&#039; images, an &#039;&#039;&#039;OPT&#039;&#039;&#039; file is created, but the universal symbol vector must be edited, so that other images could link to this image.&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;buildType&#039;&#039; - the type of build: &#039;&#039;DEBUG&#039;&#039; or &#039;&#039;RELEASE&#039;&#039; (click to change)&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 needs 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; - &#039;&#039;built&#039;&#039; or &#039;&#039;not built&#039;&#039;&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 in OpenVMS&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Commands&amp;diff=699</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=699"/>
		<updated>2019-04-14T13:22:41Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: /* 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; - Open VMS 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&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&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&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: 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; - Syncronize 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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
	<entry>
		<id>https://wiki.vmssoftware.com/index.php?title=VMS_IDE_Project_Configuration&amp;diff=466</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=466"/>
		<updated>2019-03-31T08:37:21Z</updated>

		<summary type="html">&lt;p&gt;Andrey.logachev: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Workspace=&lt;br /&gt;
When starting working on an OpenVMS project in &#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 of 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; | Project folder will store project settings and source files. To add a project folder&lt;br /&gt;
# Create a folder on your 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 type of configuration for your project. 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 &#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 &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 &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 it to &#039;&#039;&#039;vmssoftware.synchronizer-settings.json&#039;&#039;&#039; file, 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 two 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;
&lt;br /&gt;
[[Category:VMS IDE]]&lt;/div&gt;</summary>
		<author><name>Andrey.logachev</name></author>
	</entry>
</feed>