en-US/EditorServicesCommandSuite-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Add-CommandToManifest</command:name>
      <command:verb>Add</command:verb>
      <command:noun>CommandToManifest</command:noun>
      <maml:description>
        <maml:para>Add a function to the workspace module manifest.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Add-CommandToManifest function finds the closest function definition in the current file and uses it to update manifest fields.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-CommandToManifest</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not return objects to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Add-CommandToManifest</dev:code>
        <dev:remarks>
          <maml:para>Adds the closest function to the workspace module manifest.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/Add-CommandToManifest.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Add-ModuleQualification</command:name>
      <command:verb>Add</command:verb>
      <command:noun>ModuleQualification</command:noun>
      <maml:description>
        <maml:para>Add a commands module name to it's invocation expression.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Add-ModuleQualification function retrieves the module a command belongs to and prepends the module name to the expression.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-ModuleQualification</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies the CommandAst or AST within the CommandAst to add module qualification.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
          <dev:type>
            <maml:name>Ast</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies the CommandAst or AST within the CommandAst to add module qualification.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
        <dev:type>
          <maml:name>Ast</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code># Place your cursor within this command and invoke the Add-ModuleQualification command.
Get-Command
 
# It becomes:
Microsoft.PowerShell.Core\Get-Command</dev:code>
        <dev:remarks>
          <maml:para>Adds module qualification to a command expression.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/Add-ModuleQualification.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Add-PinvokeMethod</command:name>
      <command:verb>Add</command:verb>
      <command:noun>PinvokeMethod</command:noun>
      <maml:description>
        <maml:para>Find and insert a PInvoke function signature into the current file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Add-PinvokeMethod function searches pinvoke.net for the requested function name and provides a list of matches to select from. Once selected, this function will get the signature and create a expression that uses the Add-Type cmdlet to create a type with the PInvoke method.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Add-PinvokeMethod</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Function</maml:name>
          <maml:Description>
            <maml:para>Specifies the function name to search for. If omitted, a prompt will be displayed within the editor.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Module</maml:name>
          <maml:Description>
            <maml:para>Specifies the module or dll the function resides in. If omitted, and multiple matching functions exist, a choice prompt will be displayed within the editor.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Function</maml:name>
        <maml:Description>
          <maml:para>Specifies the function name to search for. If omitted, a prompt will be displayed within the editor.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Module</maml:name>
        <maml:Description>
          <maml:para>Specifies the module or dll the function resides in. If omitted, and multiple matching functions exist, a choice prompt will be displayed within the editor.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Add-PinvokeMethod -Function SetConsoleTitle -Module Kernel32
 
# Inserts the following into the file currently open in the editor.
 
# Source: http://pinvoke.net/jump.aspx/kernel32.setconsoletitle
Add-Type -Namespace PinvokeMethods -Name Kernel -MemberDefinition '
[DllImport("kernel32.dll")]
public static extern bool SetConsoleTitle(string lpConsoleTitle);'</dev:code>
        <dev:remarks>
          <maml:para>Adds code to use the SetConsoleTitle function from the kernel32 DLL.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Add-PinvokeMethod.md</maml:uri>
      </maml:navigationLink>
      <maml:navigationLink>
        <maml:linkText>pinvoke.net</maml:linkText>
        <maml:uri>http://pinvoke.net/</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-FunctionDefinition</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>FunctionDefinition</command:noun>
      <maml:description>
        <maml:para>Create a new function from a selection or specified script extent object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The ConvertTo-FunctionDefintion function takes a section of the current file and creates a function definition from it. The generated function includes a parameter block with parameters for variables that are not defined in the selection. In the place of the selected text will be the invocation of the generated command including parameters.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-FunctionDefinition</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Extent</maml:name>
          <maml:Description>
            <maml:para>The ScriptExtent to convert to a function. If not specified, the currently selected text in the editor will be used.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">IScriptExtent</command:parameterValue>
          <dev:type>
            <maml:name>IScriptExtent</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>FunctionName</maml:name>
          <maml:Description>
            <maml:para>Specifies the name to give the generated function. If not specified, a input prompt will be displayed in the editor.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>DestinationPath</maml:name>
          <maml:Description>
            <maml:para>Specifies a path relative to the file open in the editor to save the function to. You can specify an existing or new file. If the file extension is omitted, the path is assumed to be a directory and a file name is assumed to be the function name.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>ConvertTo-FunctionDefinition</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Extent</maml:name>
          <maml:Description>
            <maml:para>The ScriptExtent to convert to a function. If not specified, the currently selected text in the editor will be used.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">IScriptExtent</command:parameterValue>
          <dev:type>
            <maml:name>IScriptExtent</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>FunctionName</maml:name>
          <maml:Description>
            <maml:para>Specifies the name to give the generated function. If not specified, a input prompt will be displayed in the editor.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>BeginBlock</maml:name>
          <maml:Description>
            <maml:para>If specified, the function will be saved to the Begin block of either the closest parent function definition, or of the root script block if no function definitions exist.</maml:para>
            <maml:para>If there is no Begin block available, one will be created. If a begin block must be created and no named blocks exist yet, a separate End block will be created from the existing unnamed block.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <command:syntaxItem>
        <maml:name>ConvertTo-FunctionDefinition</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Extent</maml:name>
          <maml:Description>
            <maml:para>The ScriptExtent to convert to a function. If not specified, the currently selected text in the editor will be used.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">IScriptExtent</command:parameterValue>
          <dev:type>
            <maml:name>IScriptExtent</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>FunctionName</maml:name>
          <maml:Description>
            <maml:para>Specifies the name to give the generated function. If not specified, a input prompt will be displayed in the editor.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Inline</maml:name>
          <maml:Description>
            <maml:para>If specified, the function will be saved directly above the selection.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Extent</maml:name>
        <maml:Description>
          <maml:para>The ScriptExtent to convert to a function. If not specified, the currently selected text in the editor will be used.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">IScriptExtent</command:parameterValue>
        <dev:type>
          <maml:name>IScriptExtent</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>FunctionName</maml:name>
        <maml:Description>
          <maml:para>Specifies the name to give the generated function. If not specified, a input prompt will be displayed in the editor.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>DestinationPath</maml:name>
        <maml:Description>
          <maml:para>Specifies a path relative to the file open in the editor to save the function to. You can specify an existing or new file. If the file extension is omitted, the path is assumed to be a directory and a file name is assumed to be the function name.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>BeginBlock</maml:name>
        <maml:Description>
          <maml:para>If specified, the function will be saved to the Begin block of either the closest parent function definition, or of the root script block if no function definitions exist.</maml:para>
          <maml:para>If there is no Begin block available, one will be created. If a begin block must be created and no named blocks exist yet, a separate End block will be created from the existing unnamed block.</maml:para>
        </maml:Description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Inline</maml:name>
        <maml:Description>
          <maml:para>If specified, the function will be saved directly above the selection.</maml:para>
        </maml:Description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not return output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code># Open a new untitled file
$psEditor.Workspace.NewFile()
 
# Insert some text into the file
$psEditor.GetEditorContext().CurrentFile.InsertText('
$myVar = "testing"
Get-ChildItem $myVar
')
 
# Select the Get-ChildItem line
$psEditor.GetEditorContext().SetSelection(3, 1, 4, 1)
 
# Convert it to a function
ConvertTo-FunctionDefinition -FunctionName GetMyDirectory -Inline
 
# Show the new contents of the file
$psEditor.GetEditorContext.CurrentFile.GetText()
 
# $myVar = "testing"
# function GetMyDirectory {
# param([string] $MyVar)
# end {
# Get-ChildItem $MyVar
# }
# }
#
# GetMyDirectory -MyVar $myVar</dev:code>
        <dev:remarks>
          <maml:para>Creates a new untitled file in the editor, inserts demo text, and then converts a line to a inline function.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/ConvertTo-FunctionDefinition.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-LocalizationString</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>LocalizationString</command:noun>
      <maml:description>
        <maml:para>Move a string expression to a localization resource file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The ConvertTo-LocalizationString function will take the closest string expression and replace it with a variable that references a localization resource file.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-LocalizationString</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies the string expression to convert.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
          <dev:type>
            <maml:name>Ast</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>Name</maml:name>
          <maml:Description>
            <maml:para>Specifies the name to give the string in the localization file.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies the string expression to convert.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
        <dev:type>
          <maml:name>Ast</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>Name</maml:name>
        <maml:Description>
          <maml:para>Specifies the name to give the string in the localization file.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Current limitations:</maml:para>
        <maml:para>- Only supports localization files that use ConvertFrom-StringData and a here-string</maml:para>
        <maml:para>- Only supports using a single localization file</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code># Place your cursor inside the string and invoke this editor command:
Write-Verbose ('Writing to file at path "{0}".' -f $Path)
 
# It prompts you for a string name and becomes:
Write-Verbose ($Strings.YourStringName -f $Path)
 
# And adds this to your localization file:
YourStringName=Writing to file at path "{0}".</dev:code>
        <dev:remarks>
          <maml:para>Uses this function as an editor command to replace a string expression with a reference to a localization file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/ConvertTo-LocalizationString.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-MarkdownHelp</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>MarkdownHelp</command:noun>
      <maml:description>
        <maml:para>Convert the current function from comment based help to markdown.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The ConvertTo-MarkdownHelp function will replace existing CBH (comment based help) with markdown generated by the PlatyPS module. The CBH will be replaced with a EXTERNALHELP comment, and the new markdown file will be opened in the editor.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-MarkdownHelp</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies the FunctionDefinitionAst containing the CBH to be replaced. The default value is the closest AST to the current cursor location.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">FunctionDefinitionAst</command:parameterValue>
          <dev:type>
            <maml:name>FunctionDefinitionAst</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Find-Ast -AtCursor | Find-Ast -Ancestor -First { $_ -is [FunctionDefinitionAst] })</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies the FunctionDefinitionAst containing the CBH to be replaced. The default value is the closest AST to the current cursor location.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">FunctionDefinitionAst</command:parameterValue>
        <dev:type>
          <maml:name>FunctionDefinitionAst</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Find-Ast -AtCursor | Find-Ast -Ancestor -First { $_ -is [FunctionDefinitionAst] })</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Markdown generated from PlatyPS is altered in the following ways to conform to linting rules:</maml:para>
        <maml:para>- An extra new line is added between headers and content</maml:para>
        <maml:para>- Code blocks are marked as PowerShell code</maml:para>
        <maml:para>- Trailing spaces after blank aliases fields are removed</maml:para>
        <maml:para>- Examples with the header generated as ### Example are replaced with hyphen syntax.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>ConvertTo-MarkdownHelp</dev:code>
        <dev:remarks>
          <maml:para>Converts the closest CBH to markdown.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>$ast = Find-Ast { $_.GetType().Name -eq 'FunctionDefinitionAst' -and $_.Name -eq 'Invoke-MyCommand' }</dev:code>
        <dev:remarks>
          <maml:para>ConvertTo-MarkdownHelp -Ast $ast</maml:para>
          <maml:para>Converts any CBH in the function "Invoke-MyCommand" to markdown.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/ConvertTo-MarkdownHelp.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>ConvertTo-SplatExpression</command:name>
      <command:verb>ConvertTo</command:verb>
      <command:noun>SplatExpression</command:noun>
      <maml:description>
        <maml:para>Convert a command expression to use splatting.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The ConvertTo-SplatExpression function transforms a CommandAst to use a splat expression instead of inline parameters.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>ConvertTo-SplatExpression</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies an Ast that is, or is within the CommandAst to be converted.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
          <dev:type>
            <maml:name>Ast</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>VariableName</maml:name>
          <maml:Description>
            <maml:para>Specifies the Varabile name to use for the splat hashtable variable.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>none</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies an Ast that is, or is within the CommandAst to be converted.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
        <dev:type>
          <maml:name>Ast</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>VariableName</maml:name>
        <maml:Description>
          <maml:para>Specifies the Varabile name to use for the splat hashtable variable.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>none</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code># Place your cursor inside this command and run this function:
Get-ChildItem .\Path -Force -File -Filter *.txt -Exclude *$myExclude* -Recurse
 
# It becomes:
$getChildItemSplat = @{
    File = $true
    Filter = '*.txt'
    Exclude = "*$myExclude*"
    Force = $true
    Recurse = $true
}
Get-ChildItem @getChildItemSplat .\Path</dev:code>
        <dev:remarks>
          <maml:para>Uses this function as an editor command to expand a long command into a splat expression.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/ConvertTo-SplatExpression.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-Expression</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>Expression</command:noun>
      <maml:description>
        <maml:para>Replaces an extent with the return value of it's text as an expression.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Expand-Expression function replaces text at a specified range with it's output in PowerShell. As an editor command it will expand output of selected text.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-Expression</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="1" aliases="Extent">
          <maml:name>InputObject</maml:name>
          <maml:Description>
            <maml:para>Specifies the extent to invoke.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">IScriptExtent[]</command:parameterValue>
          <dev:type>
            <maml:name>IScriptExtent[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>($psEditor.GetEditorContext().SelectedRange | ConvertTo-ScriptExtent)</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="1" aliases="Extent">
        <maml:name>InputObject</maml:name>
        <maml:Description>
          <maml:para>Specifies the extent to invoke.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">IScriptExtent[]</command:parameterValue>
        <dev:type>
          <maml:name>IScriptExtent[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>($psEditor.GetEditorContext().SelectedRange | ConvertTo-ScriptExtent)</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.Language.IScriptExtent</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pass extents to invoke from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$psEditor.GetEditorContext().SelectedRange | ConvertTo-ScriptExtent | Expand-Expression</dev:code>
        <dev:remarks>
          <maml:para>Invokes the currently selected text and replaces it with it's output. This is also the default.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Expand-Expression.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-MemberExpression</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>MemberExpression</command:noun>
      <maml:description>
        <maml:para>Expands a member expression into a more explicit form.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Expand-MemberExpression function expands member expressions to a more explicit statement. This function has two main purposes.</maml:para>
      <maml:para>* Add parameter name comments (e.g. &lt;# parameterName: #&gt;) to method invocation arguments</maml:para>
      <maml:para>* Invokable expressions that target non-public class members using reflection</maml:para>
      <maml:para>As an editor command, this function will expand the AST closest to the current cursor location if applicable.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-MemberExpression</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies the AST of the member expression to expand.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
          <dev:type>
            <maml:name>Ast</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="2" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies the AST of the member expression to expand.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Ast</command:parameterValue>
        <dev:type>
          <maml:name>Ast</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>* When this function is building reflection statements, it will automatically choose the simpliest form of the Type.Get* methods that will resolve the target member.</maml:para>
        <maml:para>* Member resolution is currently only possible in the following scenarios: * Type literal expressions, including invalid expressions with non public types like [localpipeline] * Variable expressions where the variable exists within a currently existing scope * Any other scenario where standard completion works * Any number of nested member expressions where one of the above is true at some point in the chain</maml:para>
        <maml:para>* Member resolution may break in member chains if a member returns a type that is too generic like System.Object or IEnumerable</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>'[ConsoleKeyInfo]::new' | Out-File .\example1.ps1
psedit .\example1.ps1
$psEditor.GetEditorContext().SetSelection(1, 20, 1, 20)
Expand-MemberExpression
$psEditor.GetEditorContext().CurrentFile.GetText()
 
# [System.ConsoleKeyInfo]::new(
# &lt;# keyChar: #&gt; $keyChar,
# &lt;# key: #&gt; $key,
# &lt;# shift: #&gt; $shift,
# &lt;# alt: #&gt; $alt,
# &lt;# control: #&gt; $control)</dev:code>
        <dev:remarks>
          <maml:para>* Creates a new file with an unfinished member expression</maml:para>
          <maml:para>* Opens it in the editor</maml:para>
          <maml:para>* Sets the cursor within the member expression</maml:para>
          <maml:para>* Invokes Expand-MemberExpression</maml:para>
          <maml:para>* Returns the new expression</maml:para>
          <maml:para></maml:para>
          <maml:para>The new expression is expanded to include arguments and parameter name comments for every parameter.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>'[sessionstatescope]::createfunction' | Out-File .\example2.ps1
psedit .\example2.ps1
$psEditor.GetEditorContext().SetSelection(1, 30, 1, 30)
Expand-MemberExpression
$psEditor.GetEditorContext().CurrentFile.GetText()
 
# $createFunction = [ref].Assembly.GetType('System.Management.Automation.SessionStateScope').
# GetMethod('CreateFunction', [System.Reflection.BindingFlags]'Static, NonPublic').
# Invoke($null, @(
# &lt;# name: #&gt; $name,
# &lt;# function: #&gt; $function,
# &lt;# originalFunction: #&gt; $originalFunction,
# &lt;# options: #&gt; $options,
# &lt;# context: #&gt; $context,
# &lt;# helpFile: #&gt; $helpFile))</dev:code>
        <dev:remarks>
          <maml:para>* Creates a new file with an unfinished member expression</maml:para>
          <maml:para>* Opens it in the editor</maml:para>
          <maml:para>* Sets the cursor within the member expression</maml:para>
          <maml:para>* Invokes Expand-MemberExpression</maml:para>
          <maml:para>* Returns the new expression</maml:para>
          <maml:para></maml:para>
          <maml:para>The new expression generated will resolve the non-public type and invoke the non-public method.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>'$ExecutionContext.SessionState.Internal.RemoveVariableAtScope' | Out-File .\example3.ps1
psedit .\example3.ps1
$psEditor.GetEditorContext().SetSelection(1, 60, 1, 60)
Expand-MemberExpression
# Manually select the last overload in the menu opened in the editor.
$psEditor.GetEditorContext().CurrentFile.GetText()
 
# $internal = $ExecutionContext.SessionState.GetType().
# GetProperty('Internal', [System.Reflection.BindingFlags]'Instance, NonPublic').
# GetValue($ExecutionContext.SessionState)
#
# $removeVariableAtScope = $internal.GetType().
# GetMethod(
# &lt;# name: #&gt; 'RemoveVariableAtScope',
# &lt;# bindingAttr: #&gt; [System.Reflection.BindingFlags]'Instance, NonPublic',
# &lt;# binder: #&gt; $null,
# &lt;# types: #&gt; @([string], [string], [bool]),
# &lt;# modifiers: #&gt; 3).
# Invoke($internal, @(
# &lt;# name: #&gt; $name,
# &lt;# scopeID: #&gt; $scopeID,
# &lt;# force: #&gt; $force))</dev:code>
        <dev:remarks>
          <maml:para>* Creates a new file with an unfinished member expression</maml:para>
          <maml:para>* Opens it in the editor</maml:para>
          <maml:para>* Sets the cursor within the member expression</maml:para>
          <maml:para>* Invokes Expand-MemberExpression</maml:para>
          <maml:para>* Returns the new expression</maml:para>
          <maml:para></maml:para>
          <maml:para>This example shows that an expression will be generated for each non-public member in the chain. It also demonstrates the ability to select an overload from a menu in the editor and the more alternate syntax generated for harder to resolve methods.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Expand-MemberExpression.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Expand-TypeImplementation</command:name>
      <command:verb>Expand</command:verb>
      <command:noun>TypeImplementation</command:noun>
      <maml:description>
        <maml:para>Expand the closest type expression into a implementation using PowerShell classes.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Expand-TypeImplementation function generates code to implement a class. You can specify a type to implement, or place your cursor close to a type expression and invoke this as an editor command.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Expand-TypeImplementation</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="1" aliases="none">
          <maml:name>Type</maml:name>
          <maml:Description>
            <maml:para>Specifies the type to implement.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Type[]</command:parameterValue>
          <dev:type>
            <maml:name>Type[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByPropertyName, ByValue)" position="1" aliases="none">
        <maml:name>Type</maml:name>
        <maml:Description>
          <maml:para>Specifies the type to implement.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Type[]</command:parameterValue>
        <dev:type>
          <maml:name>Type[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>Type</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pass types to implement to this function.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>$type = [System.Management.Automation.IArgumentCompleter]
Expand-TypeImplementation -Type $type
 
# Adds the following code to the current file.
 
class NewIEqualityComparer : System.Collections.IEqualityComparer {
    [bool] Equals ([Object] $x, [Object] $y) {
        throw [NotImplementedException]::new()
    }
 
    [int] GetHashCode ([Object] $obj) {
        throw [NotImplementedException]::new()
    }
}</dev:code>
        <dev:remarks>
          <maml:para></maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Expand-TypeImplementation.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Import-CommandSuite</command:name>
      <command:verb>Import</command:verb>
      <command:noun>CommandSuite</command:noun>
      <maml:description>
        <maml:para>Initialize the EditorServicesCommandSuite module.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Import-CommandSuite function imports the EditorServicesCommandSuite module and initalizes internal processes like setting up event handlers. You can import the module directly without using this function, but it isn't supported and may cause unexpected behavior. This function can be invoked after the module is loaded in case of accidental or auto loading.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Import-CommandSuite</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept input from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Import-CommandSuite</dev:code>
        <dev:remarks>
          <maml:para>Imports EditorServicesCommandSuite functions, editor commands, and event handlers.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Import-CommandSuite.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>New-ESCSSettingsFile</command:name>
      <command:verb>New</command:verb>
      <command:noun>ESCSSettingsFile</command:noun>
      <maml:description>
        <maml:para>Create a new settings file for the current workspace.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The New-ESCSSettingsFile function creates a settings file in the current workspace. This file contains settings used by this module for determining where to find specific files.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>New-ESCSSettingsFile</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>Path</maml:name>
          <maml:Description>
            <maml:para>Specifies the path to save the settings file to. If this parameter is not specified a settings file will be created in the base of the current workspace.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>$psEditor.Workspace.Path</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Force</maml:name>
          <maml:Description>
            <maml:para>If specified indicates that an existing settings file should be overridden without prompting.</maml:para>
          </maml:Description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>Path</maml:name>
        <maml:Description>
          <maml:para>Specifies the path to save the settings file to. If this parameter is not specified a settings file will be created in the base of the current workspace.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>$psEditor.Workspace.Path</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Force</maml:name>
        <maml:Description>
          <maml:para>If specified indicates that an existing settings file should be overridden without prompting.</maml:para>
        </maml:Description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not accept value from the pipeline.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>This function does not output to the pipeline.</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>New-ESCSSettingsFile</dev:code>
        <dev:remarks>
          <maml:para>Creates the file ESCSSettings.psd1 in the base of the current workspace with default values.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/docs/en-US/New-ESCSSettingsFile.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Remove-Semicolon</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>Semicolon</command:noun>
      <maml:description>
        <maml:para>Remove useless semicolons from the current file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Remove-Semicolon function will delete any semicolon in the current file that is not followed by a new line or is within a class property definition.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Remove-Semicolon</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Remove-Semicolon</dev:code>
        <dev:remarks>
          <maml:para>Removes all useless semicolons from the current file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-RuleSuppression</command:name>
      <command:verb>Set</command:verb>
      <command:noun>RuleSuppression</command:noun>
      <maml:description>
        <maml:para>Adds a SuppressMessage attribute to suppress a rule violation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Set-RuleSupression function generates a SuppressMessage attribute and inserts it into a script file. The PSScriptAnalyzer rule will be determined automatically, as well as the best place to insert the Attribute.</maml:para>
      <maml:para>As an editor command it will attempt to suppress the Ast closest to the current cursor position.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-RuleSuppression</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
          <maml:name>Ast</maml:name>
          <maml:Description>
            <maml:para>Specifies the Ast with a rule violation to suppress.</maml:para>
          </maml:Description>
          <command:parameterValue required="true" variableLength="false">Ast[]</command:parameterValue>
          <dev:type>
            <maml:name>Ast[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="True (ByValue)" position="1" aliases="none">
        <maml:name>Ast</maml:name>
        <maml:Description>
          <maml:para>Specifies the Ast with a rule violation to suppress.</maml:para>
        </maml:Description>
        <command:parameterValue required="true" variableLength="false">Ast[]</command:parameterValue>
        <dev:type>
          <maml:name>Ast[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>(Find-Ast -AtCursor)</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.Language.Ast</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>You can pass Asts with violations to this function.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>This function does not use existing syntax markers from PowerShell Editor Services, and instead runs the Invoke-ScriptAnalyzer cmdlet on demand. This may create duplicate suppression attributes.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Set-RuleSuppression</dev:code>
        <dev:remarks>
          <maml:para>Adds a SuppressMessage attribute to suppress a rule violation.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>$propBlock = Find-Ast { $_.CommandElements -and $_.GetCommandName() -eq 'Properties' }
$propBlock | Find-Ast { $_.VariablePath } | Set-RuleSuppression</dev:code>
        <dev:remarks>
          <maml:para>Finds all variable expressions in a psake Properties block and creates a rule suppression for any that have a violation.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Set-RuleSuppression.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Set-UsingStatementOrder</command:name>
      <command:verb>Set</command:verb>
      <command:noun>UsingStatementOrder</command:noun>
      <maml:description>
        <maml:para>Sort using statements in the current file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Set-UsingStatementOrder function will sort using statements by type (e.g. Assembly &gt; Module &gt; Namespace) and then alphabetically.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Set-UsingStatementOrder</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Set-UsingStatementOrder</dev:code>
        <dev:remarks>
          <maml:para>Sort using statements in the current file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks>
      <maml:navigationLink>
        <maml:linkText>Online Version:</maml:linkText>
        <maml:uri>https://github.com/SeeminglyScience/EditorServicesCommandSuite/blob/master/docs/en-US/Set-UsingStatementOrder.md</maml:uri>
      </maml:navigationLink>
    </command:relatedLinks>
  </command:command>
</helpItems>