<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://community.bistudio.com/wiki?action=history&amp;feed=atom&amp;title=Arma_Reforger%3AScript_Editor%3A_Autocomplete_Plugin</id>
	<title>Arma Reforger:Script Editor: Autocomplete Plugin - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://community.bistudio.com/wiki?action=history&amp;feed=atom&amp;title=Arma_Reforger%3AScript_Editor%3A_Autocomplete_Plugin"/>
	<link rel="alternate" type="text/html" href="https://community.bistudio.com/wiki?title=Arma_Reforger:Script_Editor:_Autocomplete_Plugin&amp;action=history"/>
	<updated>2026-04-19T01:08:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://community.bistudio.com/wiki?title=Arma_Reforger:Script_Editor:_Autocomplete_Plugin&amp;diff=376790&amp;oldid=prev</id>
		<title>Lou Montana: Some wiki formatting</title>
		<link rel="alternate" type="text/html" href="https://community.bistudio.com/wiki?title=Arma_Reforger:Script_Editor:_Autocomplete_Plugin&amp;diff=376790&amp;oldid=prev"/>
		<updated>2025-11-19T15:24:52Z</updated>

		<summary type="html">&lt;p&gt;Some wiki formatting&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:24, 19 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l13&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Script snippets on keyword (see {{Link|#Default Keywords}} below for a full list of default keywords)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Script snippets on keyword (see {{Link|#Default Keywords}} below for a full list of default keywords)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Instantiation help (see {{Link|#Autocomplete}} below)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Instantiation help (see {{Link|#Autocomplete}} below)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Safety &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Checks&lt;/del&gt;: adds a null check after a cast (if not present), adds a validity check after &amp;lt;enforce inline methods=&amp;quot;Load&amp;quot;&amp;gt;Resource.Load&amp;lt;/enforce&amp;gt; (if not present)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Safety &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;checks&lt;/ins&gt;: adds a null check after a cast (if not present), adds a validity check after &amp;lt;enforce inline methods=&amp;quot;Load&amp;quot;&amp;gt;Resource.Load&amp;lt;/enforce&amp;gt; (if not present)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Attribute &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Decorators&lt;/del&gt;: automatically suggests/adds appropriate &amp;lt;enforce inline&amp;gt;[Attribute(/* ... */)]&amp;lt;/enforce&amp;gt; decorators for variables&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Attribute &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;decorators&lt;/ins&gt;: automatically suggests/adds appropriate &amp;lt;enforce inline&amp;gt;[Attribute(/* ... */)]&amp;lt;/enforce&amp;gt; decorators for variables&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Log &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Level Consistency&lt;/del&gt;: ensures &amp;lt;enforce inline methods=&amp;quot;Print&amp;quot;&amp;gt;Print&amp;lt;/enforce&amp;gt; and &amp;lt;enforce inline methods=&amp;quot;PrintFormat&amp;quot;&amp;gt;PrintFormat&amp;lt;/enforce&amp;gt; method calls have explicit log levels&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Log &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;level consistency&lt;/ins&gt;: ensures &amp;lt;enforce inline methods=&amp;quot;Print&amp;quot;&amp;gt;Print&amp;lt;/enforce&amp;gt; and &amp;lt;enforce inline methods=&amp;quot;PrintFormat&amp;quot;&amp;gt;PrintFormat&amp;lt;/enforce&amp;gt; method calls have explicit log levels&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* User &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Customisation&lt;/del&gt;: supports user-defined keywords/snippets and attribute decorators; defaults can be edited or reset.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* User &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;customisation&lt;/ins&gt;: supports user-defined keywords/snippets and attribute decorators; defaults can be edited or reset.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lou Montana</name></author>
	</entry>
	<entry>
		<id>https://community.bistudio.com/wiki?title=Arma_Reforger:Script_Editor:_Autocomplete_Plugin&amp;diff=376789&amp;oldid=prev</id>
		<title>Lou Montana: Page creation</title>
		<link rel="alternate" type="text/html" href="https://community.bistudio.com/wiki?title=Arma_Reforger:Script_Editor:_Autocomplete_Plugin&amp;diff=376789&amp;oldid=prev"/>
		<updated>2025-11-19T14:59:30Z</updated>

		<summary type="html">&lt;p&gt;Page creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox/WorkbenchPlugin&lt;br /&gt;
|name= Autocomplete&lt;br /&gt;
|editor= script&lt;br /&gt;
|descr= A plugin to autocomplete/autofix the current line&lt;br /&gt;
|file= {{Link|enfusion://ScriptEditor/scripts/WorkbenchGame/ScriptEditor/SCR_AutocompletePlugin.c}}&lt;br /&gt;
|shortcut= {{Controls|Ctrl|Return}}&lt;br /&gt;
}}&lt;br /&gt;
The '''Autocomplete''' {{Link|Arma Reforger:Script Editor}} plugin helps script authors by providing autocompletion and smart insertions for e.g common code structures, code snippets, boilerplate code etc. It also assists with attribute decorators, log level consistency, null and validity checks, and more.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
&lt;br /&gt;
* Script snippets on keyword (see {{Link|#Default Keywords}} below for a full list of default keywords)&lt;br /&gt;
* Instantiation help (see {{Link|#Autocomplete}} below)&lt;br /&gt;
* Safety Checks: adds a null check after a cast (if not present), adds a validity check after &amp;lt;enforce inline methods=&amp;quot;Load&amp;quot;&amp;gt;Resource.Load&amp;lt;/enforce&amp;gt; (if not present)&lt;br /&gt;
* Attribute Decorators: automatically suggests/adds appropriate &amp;lt;enforce inline&amp;gt;[Attribute(/* ... */)]&amp;lt;/enforce&amp;gt; decorators for variables&lt;br /&gt;
* Log Level Consistency: ensures &amp;lt;enforce inline methods=&amp;quot;Print&amp;quot;&amp;gt;Print&amp;lt;/enforce&amp;gt; and &amp;lt;enforce inline methods=&amp;quot;PrintFormat&amp;quot;&amp;gt;PrintFormat&amp;lt;/enforce&amp;gt; method calls have explicit log levels&lt;br /&gt;
* User Customisation: supports user-defined keywords/snippets and attribute decorators; defaults can be edited or reset.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Use ==&lt;br /&gt;
&lt;br /&gt;
In Script Editor, type a supported keyword or code pattern then press {{Controls|Ctrl|Return}} to execute the plugin.&lt;br /&gt;
The keyword gets replaced with the corresponding snippet, or the line will be auto-fixed/augmented as needed.&lt;br /&gt;
Many behaviours are configurable in the plugin settings via Workbench and custom keywords can be added.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Default Keywords ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable valign-top&amp;quot;&lt;br /&gt;
! Keyword&lt;br /&gt;
! Description&lt;br /&gt;
! Result&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|if}}&lt;br /&gt;
| {{hl|if}} structure&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
if (condition)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|ife}}&lt;br /&gt;
| {{hl|if-else}} structure&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
if (condition)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|for}}&lt;br /&gt;
| {{hl|for}} loop temporarily storing the iteratedclength&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
for (int i, count = arr.Count(); i &amp;lt; count; i++)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|forr}}&lt;br /&gt;
| Reversed {{hl|for}} loop (from end to start)&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
for (int i = arr.Count() - 1; i &amp;gt;= 0; i--)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|foreach}}&lt;br /&gt;
| {{hl|foreach}} loop (item type to be replaced)&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
foreach (SCR_Class item : items)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|foreachi}}&lt;br /&gt;
| Indexed {{hl|foreach}} loop&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
foreach (int i, SCR_Class item : items)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|switch}}&lt;br /&gt;
| {{hl|switch-case}} structure&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
switch (value)&lt;br /&gt;
{&lt;br /&gt;
	case 0:&lt;br /&gt;
		break;&lt;br /&gt;
&lt;br /&gt;
	default:&lt;br /&gt;
		break;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|while}}&lt;br /&gt;
| {{hl|while}} structure&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
while (condition)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|class}}&lt;br /&gt;
| {{hl|class}} basic structure&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
class SCR_MyClass&lt;br /&gt;
{&lt;br /&gt;
	protected string m_sValue = &amp;quot;Generated class&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	//------------------------------------------------------------------------------------------------&lt;br /&gt;
	//! constructor&lt;br /&gt;
	void SCR_MyClass()&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|method}}/{{hl|func}}&lt;br /&gt;
| Method/Function structure (indentation depending on keyword's indentation)&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
//------------------------------------------------------------------------------------------------&lt;br /&gt;
//! \param[in] parameter&lt;br /&gt;
protected void Method(int parameter)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|ctor}}/{{hl|dtor}}&lt;br /&gt;
| Current class's constructor/destructor&amp;lt;br&amp;gt;&amp;lt;enforce inline&amp;gt;IEntity&amp;lt;/enforce&amp;gt; constructor if class name ends with {{hl|Entity}}&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim classes=&amp;quot;SCR_CurrentClassName&amp;quot;&amp;gt;&lt;br /&gt;
//------------------------------------------------------------------------------------------------&lt;br /&gt;
// constructor&lt;br /&gt;
void SCR_CurrentClassName()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce noTrim classes=&amp;quot;SCR_CurrentClassNameEntity&amp;quot;&amp;gt;&lt;br /&gt;
//------------------------------------------------------------------------------------------------&lt;br /&gt;
// constructor&lt;br /&gt;
void SCR_CurrentClassNameEntity(IEntitySource src, IEntity parent)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
//------------------------------------------------------------------------------------------------&lt;br /&gt;
// destructor&lt;br /&gt;
void ~SCR_CurrentClassName()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|findcomp}}&lt;br /&gt;
| Script component-finding structure with null check&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
SCR_ComponentClass component = SCR_ComponentClass.Cast(entity.FindComponent(SCR_ComponentClass));&lt;br /&gt;
if (!comp)&lt;br /&gt;
	return;&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| {{hl|print}}&lt;br /&gt;
| A simple &amp;lt;enforce inline methods=&amp;quot;Print&amp;quot;&amp;gt;Print&amp;lt;/enforce&amp;gt; line with log level&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
Print(&amp;quot;fill&amp;quot;, LogLevel.NORMAL);&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Autocompletion ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Type&lt;br /&gt;
! Examples&lt;br /&gt;
|-&lt;br /&gt;
| Instantiation&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
SCR_Class instance =&lt;br /&gt;
// or&lt;br /&gt;
SCR_Class instance = new&lt;br /&gt;
// or&lt;br /&gt;
SCR_Class instance = new SCR_Class;&lt;br /&gt;
// becomes&lt;br /&gt;
SCR_Class instance = new SCR_Class();&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
map&amp;lt;string, ref SCR_MyLongClassName&amp;gt; myMap =&lt;br /&gt;
// becomes&lt;br /&gt;
map&amp;lt;string, ref SCR_MyLongClassName&amp;gt; myMap = new map&amp;lt;string, ref SCR_MyLongClassName&amp;gt;();&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
array&amp;lt;string&amp;gt; list = new array&amp;lt;string&amp;gt;();&lt;br /&gt;
// becomes&lt;br /&gt;
array&amp;lt;string&amp;gt; list = {};&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Attribute decorator creation&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&lt;br /&gt;
&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
	protected bool m_bShowWhenEmpty;&lt;br /&gt;
// becomes&lt;br /&gt;
	[Attribute(defvalue: &amp;quot;1&amp;quot;, desc: &amp;quot;Show When Empty&amp;quot;)]&lt;br /&gt;
	protected bool m_bShowWhenEmpty;&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce noTrim&amp;gt;&lt;br /&gt;
	protected SCR_EBoxSide m_eBoxSide;&lt;br /&gt;
// becomes&lt;br /&gt;
	[Attribute(defvalue: &amp;quot;0&amp;quot;, desc: &amp;quot;Side To Show&amp;quot;, uiwidget: UIWidgets.ComboBox, enumType: SCR_EBoxSide)]&lt;br /&gt;
	protected SCR_EBoxSide m_eSideToShow;&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Log level check&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
Print(&amp;quot;Hello there&amp;quot;);&lt;br /&gt;
// becomes&lt;br /&gt;
Print(&amp;quot;Hello there&amp;quot;, LogLevel.NORMAL);&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
PrintFormat(&amp;quot;General %1!&amp;quot;, &amp;quot;Kenobi&amp;quot;);&lt;br /&gt;
// or&lt;br /&gt;
PrintFormat(&amp;quot;General %1!&amp;quot;, &amp;quot;Kenobi&amp;quot;, LogLevel.NORMAL);&lt;br /&gt;
// becomes&lt;br /&gt;
PrintFormat(&amp;quot;General %1!&amp;quot;, &amp;quot;Kenobi&amp;quot;, level: LogLevel.NORMAL);&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
PrintFormat(&amp;quot;You are a %1 one&amp;quot;, &amp;quot;bold&amp;quot;, LogLevel.WARNING);&lt;br /&gt;
// becomes&lt;br /&gt;
PrintFormat(&amp;quot;You are a %1 one&amp;quot;, &amp;quot;bold&amp;quot;, level: LogLevel.WARNING);&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Cast null check&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
SCR_Class casted = SCR_Class.Cast(instance);&lt;br /&gt;
Print(casted.m_Value);&lt;br /&gt;
// becomes&lt;br /&gt;
SCR_Class casted = SCR_Class.Cast(instance);&lt;br /&gt;
if (!casted)&lt;br /&gt;
	return;&lt;br /&gt;
&lt;br /&gt;
Print(casted.m_Value);&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Resource validity check&lt;br /&gt;
| &amp;lt;spoiler&amp;gt;&lt;br /&gt;
&amp;lt;enforce&amp;gt;&lt;br /&gt;
Resource resource = Resource.Load(resourceName);&lt;br /&gt;
BaseContainer baseContainer = resource.GetResource().ToBaseContainer();&lt;br /&gt;
// becomes&lt;br /&gt;
Resource resource = Resource.Load(resourceName);&lt;br /&gt;
if (!resource.IsValid())&lt;br /&gt;
	return;&lt;br /&gt;
&lt;br /&gt;
BaseContainer baseContainer = resource.GetResource().ToBaseContainer();&lt;br /&gt;
&amp;lt;/enforce&amp;gt;&lt;br /&gt;
&amp;lt;/spoiler&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Settings Overview ==&lt;br /&gt;
&lt;br /&gt;
* Enable/Disable constructor/destructor/autoinstantiate/fix features&lt;br /&gt;
* Choose when instantiation assistance triggers (on &amp;quot;= new&amp;quot;, &amp;quot;=&amp;quot; only or both)&lt;br /&gt;
* Configure default &amp;lt;enforce inline methods=&amp;quot;Print&amp;quot;&amp;gt;Print&amp;lt;/enforce&amp;gt;/&amp;lt;enforce inline methods=&amp;quot;PrintFormat&amp;quot;&amp;gt;PrintFormat&amp;lt;/enforce&amp;gt; log level&lt;br /&gt;
* Edit tool/user keyword pairs and attribute decorator presets&lt;br /&gt;
* All settings available via plugin configuration dialog.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Customisation ==&lt;br /&gt;
&lt;br /&gt;
* Custom keywords/snippets and attribute templates are supported via settings.&lt;br /&gt;
* Tool-provided (default) and user-defined lists are kept separate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* {{Link|Arma Reforger:Script Editor}}&lt;br /&gt;
* {{GameCategory|armaR|Modding|Official Tools|Script Editor Plugins|text= Script Editor Plugins}}&lt;br /&gt;
* {{Link|Arma Reforger:Script Editor: Fill From Template Plugin}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{GameCategory|armaR|Modding|Official Tools|Script Editor Plugins}}&lt;/div&gt;</summary>
		<author><name>Lou Montana</name></author>
	</entry>
</feed>