PowerCLI autocompletion for Notepad++
May 19th, 2010
No comments
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>