PowerCLI autocompletion for Notepad++

Notepad++ supports Powershell from version v5.6 but the VMware PowerCLI cmdlets aren’t included.

So I created PowerCLI Language definition file for syntax highlighting. It contains the cmdlets available in vSphere PowerCLI 4 Update 1 and vCenter Update Manager PowerCLI 4 Update 1.

<NotepadPlus>
    <UserLang name="PowerCLI" ext="ps1">
        <Settings>
            <Global caseIgnored="yes" />
            <TreatAsSymbol comment="no" commentLine="no" />
            <Prefix words1="yes" words2="yes" words3="no" words4="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Delimiters">000000</Keywords>
            <Keywords name="Folder+"></Keywords>
            <Keywords name="Folder-"></Keywords>
            <Keywords name="Operators"></Keywords>
            <Keywords name="Comment"></Keywords>
            <Keywords name="Words1">Add-PassthroughDevice Add-VMHost Add-VmHostNtpServer Apply-DrsRecommendation Apply-VMHostProfile Connect-VIServer Copy-DatastoreItem Copy-HardDisk Copy-VMGuestFile Disconnect-VIServer Dismount-Tools Export-VApp Export-VMHostProfile Get-Annotation Get-CDDrive Get-Cluster Get-CustomAttribute Get-Datacenter Get-Datastore Get-DrsRecommendation Get-DrsRule Get-FloppyDrive Get-Folder Get-HardDisk Get-Inventory Get-IScsiHbaTarget Get-Log Get-LogType Get-NetworkAdapter Get-NicTeamingPolicy Get-OSCustomizationNicMapping Get-OSCustomizationSpec Get-PassthroughDevice Get-PowerCLIConfiguration Get-PowerCLIVersion Get-ResourcePool Get-ScsiLun Get-ScsiLunPath Get-Snapshot Get-Stat Get-StatInterval Get-StatType Get-Task Get-Template Get-UsbDevice Get-VApp Get-VICredentialStoreItem Get-VIEvent Get-View Get-VIObjectByVIView Get-VIPermission Get-VIPrivilege Get-VIRole Get-VirtualPortGroup Get-VirtualSwitch Get-VM Get-VMGuest Get-VMGuestNetworkInterface Get-VMGuestRoute Get-VMHost Get-VMHostAccount Get-VMHostAdvancedConfiguration Get-VMHostAvailableTimeZone Get-VMHostDiagnosticPartition Get-VMHostFirewallDefaultPolicy Get-VMHostFirewallException Get-VMHostFirmware Get-VMHostHba Get-VMHostModule Get-VMHostNetwork Get-VMHostNetworkAdapter Get-VMHostNtpServer Get-VMHostProfile Get-VMHostService Get-VMHostSnmp Get-VMHostStartPolicy Get-VMHostStorage Get-VMHostSysLogServer Get-VMQuestion Get-VMResourceConfiguration Get-VMStartPolicy Import-VApp Import-VMHostProfile Install-VMHostPatch Invoke-VMScript Mount-Tools Move-Cluster Move-Datacenter Move-Folder Move-Inventory Move-ResourcePool Move-Template Move-VM Move-VMHostNew-CDDrive New-ClusterNew-CustomAttribute New-CustomField New-Datacenter New-Datastore New-DrsRule New-FloppyDrive New-Folder New-HardDisk New-IScsiHbaTarget New-NetworkAdapter New-OSCustomizationNicMapping New-OSCustomizationSpec New-ResourcePool New-Snapshot New-StatInterval New-Template New-VApp New-VICredentialStoreItem New-VIPermission New-VIRole New-VirtualPortGroup New-VirtualSwitch New-VM New-VMGuestRoute New-VMHostAccount New-VMHostNetworkAdapter New-VMHostProfile Remove-CDDrive Remove-Cluster Remove-CustomAttribute Remove-CustomField Remove-Datacenter Remove-Datastore Remove-DrsRule Remove-FloppyDrive Remove-Folder Remove-HardDisk Remove-Inventory Remove-IScsiHbaTarget Remove-NetworkAdapter Remove-OSCustomizationNicMap... Remove-OSCustomizationSpec Remove-PassthroughDevice Remove-ResourcePool Remove-Snapshot Remove-StatInterval Remove-Template Remove-UsbDevice Remove-VApp Remove-VICredentialStoreItem Remove-VIPermission Remove-VIRole Remove-VirtualPortGroup Remove-VirtualSwitch Remove-VM Remove-VMGuestRoute Remove-VMHost Remove-VMHostAccount Remove-VMHostNetworkAdapter Remove-VMHostNtpServer Remove-VMHostProfile Restart-VM Restart-VMGuest Restart-VMHost Restart-VMHostService Set-Annotation Set-CDDrive Set-Cluster Set-CustomAttribute Set-CustomField Set-Datacenter Set-Datastore Set-DrsRule Set-FloppyDrive Set-Folder Set-HardDisk Set-IScsiHbaTarget Set-NetworkAdapter Set-NicTeamingPolicy Set-OSCustomizationNicMapping Set-OSCustomizationSpec Set-PowerCLIConfiguration Set-ResourcePool Set-ScsiLun Set-ScsiLunPath Set-Snapshot Set-StatInterval Set-Template Set-VApp Set-VIPermission Set-VIRole Set-VirtualPortGroup Set-VirtualSwitch Set-VM Set-VMGuestNetworkInterface Set-VMGuestRoute Set-VMHost Set-VMHostAccount Set-VMHostAdvancedConfiguration Set-VMHostDiagnosticPartition Set-VMHostFirewallDefaultPolicy Set-VMHostFirewallException Set-VMHostFirmware Set-VMHostHba Set-VMHostModule Set-VMHostNetwork Set-VMHostNetworkAdapter Set-VMHostProfile Set-VMHostService Set-VMHostSnmp Set-VMHostStartPolicy Set-VMHostStorage Set-VMHostSysLogServer Set-VMQuestion Set-VMResourceConfiguration Set-VMStartPolicy Shutdown-VMGuest Start-VApp Start-VM Start-VMHost Start-VMHostService Stop-Task Stop-VApp Stop-VM Stop-VMHost Stop-VMHostService Suspend-VM Suspend-VMGuest Suspend-VMHost Test-VMHostProfileCompliance Test-VMHostSnmp Update-Tools Wait-Task Attach-Baseline Detach-Baseline Download-Patch Get-Baseline Get-Compliance Get-Patch Get-PatchBaseline New-PatchBaseline Remediate-Inventory Remove-Baseline Scan-Inventory Set-PatchBaseline Stage-Patch</Keywords>
            <Keywords name="Words2">Answer-VMQuestion Get-ESX Get-PowerCLIDocumentation Get-VC Get-VIServer Get-VIToolkitConfiguration Get-VIToolkitVersion Set-VIToolkitConfiguration</Keywords>
            <Keywords name="Words3"></Keywords>
            <Keywords name="Words4"></Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD1" styleID="5" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="KEYWORD2" styleID="6" fgColor="8080FF" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="COMMENT" styleID="1" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="NUMBER" styleID="4" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="OPERATOR" styleID="10" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER1" styleID="14" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER2" styleID="15" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
        </Styles>
    </UserLang>
</NotepadPlus>

To add PowerCLI as a user-defined language %APPDATA%\Notepad++\userDefineLang.xml and add the above configuration to this file.

Secondly I created a PowerCLI auto-completion file which contains the same PowerCLI cmdlets. This configuration needs to be added to C:\Program Files\Notepad++\plugins\APIs\PowerCLI.xml. The name of the auto-completion file needs to be the same as defined in the user-defined language definition file.

<NotepadPlus>
	<AutoComplete>
		<KeyWord name="Add-PassthroughDevice"/>
		<KeyWord name="Add-VMHost"/>
		<KeyWord name="Add-VmHostNtpServer"/>
		<KeyWord name="Answer-VMQuestion"/>
		<KeyWord name="Apply-DrsRecommendation"/>
		<KeyWord name="Apply-VMHostProfile"/>
		<KeyWord name="Attach-Baseline"/>
		<KeyWord name="Connect-VIServer"/>
		<KeyWord name="Copy-DatastoreItem"/>
		<KeyWord name="Copy-HardDisk"/>
		<KeyWord name="Copy-VMGuestFile"/>
		<KeyWord name="Detach-Baseline"/>
		<KeyWord name="Disconnect-VIServer"/>
		<KeyWord name="Dismount-Tools"/>
		<KeyWord name="Download-Patch"/>
		<KeyWord name="Export-VApp"/>
		<KeyWord name="Export-VMHostProfile"/>
		<KeyWord name="Get-Annotation"/>
		<KeyWord name="Get-Baseline"/>
		<KeyWord name="Get-CDDrive"/>
		<KeyWord name="Get-Cluster"/>
		<KeyWord name="Get-Compliance"/>
		<KeyWord name="Get-CustomAttribute"/>
		<KeyWord name="Get-Datacenter"/>
		<KeyWord name="Get-Datastore"/>
		<KeyWord name="Get-DrsRecommendation"/>
		<KeyWord name="Get-DrsRule"/>
		<KeyWord name="Get-ESX"/>
		<KeyWord name="Get-FloppyDrive"/>
		<KeyWord name="Get-Folder"/>
		<KeyWord name="Get-HardDisk"/>
		<KeyWord name="Get-IScsiHbaTarget"/>
		<KeyWord name="Get-Inventory"/>
		<KeyWord name="Get-Log"/>
		<KeyWord name="Get-LogType"/>
		<KeyWord name="Get-NetworkAdapter"/>
		<KeyWord name="Get-NicTeamingPolicy"/>
		<KeyWord name="Get-OSCustomizationNicMapping"/>
		<KeyWord name="Get-OSCustomizationSpec"/>
		<KeyWord name="Get-PassthroughDevice"/>
		<KeyWord name="Get-Patch"/>
		<KeyWord name="Get-PatchBaseline"/>
		<KeyWord name="Get-PowerCLIConfiguration"/>
		<KeyWord name="Get-PowerCLIDocumentation"/>
		<KeyWord name="Get-PowerCLIVersion"/>
		<KeyWord name="Get-ResourcePool"/>
		<KeyWord name="Get-ScsiLun"/>
		<KeyWord name="Get-ScsiLunPath"/>
		<KeyWord name="Get-Snapshot"/>
		<KeyWord name="Get-Stat"/>
		<KeyWord name="Get-StatInterval"/>
		<KeyWord name="Get-StatType"/>
		<KeyWord name="Get-Task"/>
		<KeyWord name="Get-Template"/>
		<KeyWord name="Get-UsbDevice"/>
		<KeyWord name="Get-VApp"/>
		<KeyWord name="Get-VC"/>
		<KeyWord name="Get-VICredentialStoreItem"/>
		<KeyWord name="Get-VIEvent"/>
		<KeyWord name="Get-VIObjectByVIView"/>
		<KeyWord name="Get-VIPermission"/>
		<KeyWord name="Get-VIPrivilege"/>
		<KeyWord name="Get-VIRole"/>
		<KeyWord name="Get-VIServer"/>
		<KeyWord name="Get-VIToolkitConfiguration"/>
		<KeyWord name="Get-VIToolkitVersion"/>
		<KeyWord name="Get-VM"/>
		<KeyWord name="Get-VMGuest"/>
		<KeyWord name="Get-VMGuestNetworkInterface"/>
		<KeyWord name="Get-VMGuestRoute"/>
		<KeyWord name="Get-VMHost"/>
		<KeyWord name="Get-VMHostAccount"/>
		<KeyWord name="Get-VMHostAdvancedConfiguration"/>
		<KeyWord name="Get-VMHostAvailableTimeZone"/>
		<KeyWord name="Get-VMHostDiagnosticPartition"/>
		<KeyWord name="Get-VMHostFirewallDefaultPolicy"/>
		<KeyWord name="Get-VMHostFirewallException"/>
		<KeyWord name="Get-VMHostFirmware"/>
		<KeyWord name="Get-VMHostHba"/>
		<KeyWord name="Get-VMHostModule"/>
		<KeyWord name="Get-VMHostNetwork"/>
		<KeyWord name="Get-VMHostNetworkAdapter"/>
		<KeyWord name="Get-VMHostNtpServer"/>
		<KeyWord name="Get-VMHostProfile"/>
		<KeyWord name="Get-VMHostService"/>
		<KeyWord name="Get-VMHostSnmp"/>
		<KeyWord name="Get-VMHostStartPolicy"/>
		<KeyWord name="Get-VMHostStorage"/>
		<KeyWord name="Get-VMHostSysLogServer"/>
		<KeyWord name="Get-VMQuestion"/>
		<KeyWord name="Get-VMResourceConfiguration"/>
		<KeyWord name="Get-VMStartPolicy"/>
		<KeyWord name="Get-View"/>
		<KeyWord name="Get-VirtualPortGroup"/>
		<KeyWord name="Get-VirtualSwitch"/>
		<KeyWord name="Import-VApp"/>
		<KeyWord name="Import-VMHostProfile"/>
		<KeyWord name="Install-VMHostPatch"/>
		<KeyWord name="Invoke-VMScript"/>
		<KeyWord name="Mount-Tools"/>
		<KeyWord name="Move-Cluster"/>
		<KeyWord name="Move-Datacenter"/>
		<KeyWord name="Move-Folder"/>
		<KeyWord name="Move-Inventory"/>
		<KeyWord name="Move-ResourcePool"/>
		<KeyWord name="Move-Template"/>
		<KeyWord name="Move-VM"/>
		<KeyWord name="Move-VMHost"/>
		<KeyWord name="New-CDDrive"/>
		<KeyWord name="New-Cluster"/>
		<KeyWord name="New-CustomAttribute"/>
		<KeyWord name="New-CustomField"/>
		<KeyWord name="New-Datacenter"/>
		<KeyWord name="New-Datastore"/>
		<KeyWord name="New-DrsRule"/>
		<KeyWord name="New-FloppyDrive"/>
		<KeyWord name="New-Folder"/>
		<KeyWord name="New-HardDisk"/>
		<KeyWord name="New-IScsiHbaTarget"/>
		<KeyWord name="New-NetworkAdapter"/>
		<KeyWord name="New-OSCustomizationNicMapping"/>
		<KeyWord name="New-OSCustomizationSpec"/>
		<KeyWord name="New-PatchBaseline"/>
		<KeyWord name="New-ResourcePool"/>
		<KeyWord name="New-Snapshot"/>
		<KeyWord name="New-StatInterval"/>
		<KeyWord name="New-Template"/>
		<KeyWord name="New-VApp"/>
		<KeyWord name="New-VICredentialStoreItem"/>
		<KeyWord name="New-VIPermission"/>
		<KeyWord name="New-VIRole"/>
		<KeyWord name="New-VM"/>
		<KeyWord name="New-VMGuestRoute"/>
		<KeyWord name="New-VMHostAccount"/>
		<KeyWord name="New-VMHostNetworkAdapter"/>
		<KeyWord name="New-VMHostProfile"/>
		<KeyWord name="New-VirtualPortGroup"/>
		<KeyWord name="New-VirtualSwitch"/>
		<KeyWord name="Remediate-Inventory"/>
		<KeyWord name="Remove-Baseline"/>
		<KeyWord name="Remove-CDDrive"/>
		<KeyWord name="Remove-Cluster"/>
		<KeyWord name="Remove-CustomAttribute"/>
		<KeyWord name="Remove-CustomField"/>
		<KeyWord name="Remove-Datacenter"/>
		<KeyWord name="Remove-Datastore"/>
		<KeyWord name="Remove-DrsRule"/>
		<KeyWord name="Remove-FloppyDrive"/>
		<KeyWord name="Remove-Folder"/>
		<KeyWord name="Remove-HardDisk"/>
		<KeyWord name="Remove-IScsiHbaTarget"/>
		<KeyWord name="Remove-Inventory"/>
		<KeyWord name="Remove-NetworkAdapter"/>
		<KeyWord name="Remove-OSCustomizationNicMap..."/>
		<KeyWord name="Remove-OSCustomizationSpec"/>
		<KeyWord name="Remove-PassthroughDevice"/>
		<KeyWord name="Remove-ResourcePool"/>
		<KeyWord name="Remove-Snapshot"/>
		<KeyWord name="Remove-StatInterval"/>
		<KeyWord name="Remove-Template"/>
		<KeyWord name="Remove-UsbDevice"/>
		<KeyWord name="Remove-VApp"/>
		<KeyWord name="Remove-VICredentialStoreItem"/>
		<KeyWord name="Remove-VIPermission"/>
		<KeyWord name="Remove-VIRole"/>
		<KeyWord name="Remove-VM"/>
		<KeyWord name="Remove-VMGuestRoute"/>
		<KeyWord name="Remove-VMHost"/>
		<KeyWord name="Remove-VMHostAccount"/>
		<KeyWord name="Remove-VMHostNetworkAdapter"/>
		<KeyWord name="Remove-VMHostNtpServer"/>
		<KeyWord name="Remove-VMHostProfile"/>
		<KeyWord name="Remove-VirtualPortGroup"/>
		<KeyWord name="Remove-VirtualSwitch"/>
		<KeyWord name="Restart-VM"/>
		<KeyWord name="Restart-VMGuest"/>
		<KeyWord name="Restart-VMHost"/>
		<KeyWord name="Restart-VMHostService"/>
		<KeyWord name="Scan-Inventory"/>
		<KeyWord name="Set-Annotation"/>
		<KeyWord name="Set-CDDrive"/>
		<KeyWord name="Set-Cluster"/>
		<KeyWord name="Set-CustomAttribute"/>
		<KeyWord name="Set-CustomField"/>
		<KeyWord name="Set-Datacenter"/>
		<KeyWord name="Set-Datastore"/>
		<KeyWord name="Set-DrsRule"/>
		<KeyWord name="Set-FloppyDrive"/>
		<KeyWord name="Set-Folder"/>
		<KeyWord name="Set-HardDisk"/>
		<KeyWord name="Set-IScsiHbaTarget"/>
		<KeyWord name="Set-NetworkAdapter"/>
		<KeyWord name="Set-NicTeamingPolicy"/>
		<KeyWord name="Set-OSCustomizationNicMapping"/>
		<KeyWord name="Set-OSCustomizationSpec"/>
		<KeyWord name="Set-PatchBaseline"/>
		<KeyWord name="Set-PowerCLIConfiguration"/>
		<KeyWord name="Set-ResourcePool"/>
		<KeyWord name="Set-ScsiLun"/>
		<KeyWord name="Set-ScsiLunPath"/>
		<KeyWord name="Set-Snapshot"/>
		<KeyWord name="Set-StatInterval"/>
		<KeyWord name="Set-Template"/>
		<KeyWord name="Set-VApp"/>
		<KeyWord name="Set-VIPermission"/>
		<KeyWord name="Set-VIRole"/>
		<KeyWord name="Set-VM"/>
		<KeyWord name="Set-VMGuestNetworkInterface"/>
		<KeyWord name="Set-VMGuestRoute"/>
		<KeyWord name="Set-VMHost"/>
		<KeyWord name="Set-VMHostAccount"/>
		<KeyWord name="Set-VMHostAdvancedConfiguration"/>
		<KeyWord name="Set-VMHostDiagnosticPartition"/>
		<KeyWord name="Set-VMHostFirewallDefaultPolicy"/>
		<KeyWord name="Set-VMHostFirewallException"/>
		<KeyWord name="Set-VMHostFirmware"/>
		<KeyWord name="Set-VMHostHba"/>
		<KeyWord name="Set-VMHostModule"/>
		<KeyWord name="Set-VMHostNetwork"/>
		<KeyWord name="Set-VMHostNetworkAdapter"/>
		<KeyWord name="Set-VMHostProfile"/>
		<KeyWord name="Set-VMHostService"/>
		<KeyWord name="Set-VMHostSnmp"/>
		<KeyWord name="Set-VMHostStartPolicy"/>
		<KeyWord name="Set-VMHostStorage"/>
		<KeyWord name="Set-VMHostSysLogServer"/>
		<KeyWord name="Set-VMQuestion"/>
		<KeyWord name="Set-VMResourceConfiguration"/>
		<KeyWord name="Set-VMStartPolicy"/>
		<KeyWord name="Set-VirtualPortGroup"/>
		<KeyWord name="Set-VirtualSwitch"/>
		<KeyWord name="Shutdown-VMGuest"/>
		<KeyWord name="Stage-Patch"/>
		<KeyWord name="Start-VApp"/>
		<KeyWord name="Start-VM"/>
		<KeyWord name="Start-VMHost"/>
		<KeyWord name="Start-VMHostService"/>
		<KeyWord name="Stop-Task"/>
		<KeyWord name="Stop-VApp"/>
		<KeyWord name="Stop-VM"/>
		<KeyWord name="Stop-VMHost"/>
		<KeyWord name="Stop-VMHostService"/>
		<KeyWord name="Suspend-VM"/>
		<KeyWord name="Suspend-VMGuest"/>
		<KeyWord name="Suspend-VMHost"/>
		<KeyWord name="Test-VMHostProfileCompliance"/>
		<KeyWord name="Test-VMHostSnmp"/>
		<KeyWord name="Update-Tools"/>
		<KeyWord name="Wait-Task "/>
	</AutoComplete>
</NotepadPlus>
Tagged with: , ,
Posted in PowerShell, Scripting, Virtualization
IT Pro Summer GP
IT Pro Summer Grand Prix
MVA
Microsoft Virtual Academy
Pro-Exchange
Pro-Exchange / Pro-Lync / Pro-Office365
MEET

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 158 other followers

%d bloggers like this: