Home Blog VBScript Support and more
 

VBScript Support and more

8 weeks have passed since the last ISESteroids update was published. To give you a good understanding of what we’re currently working on, and what to expect from the upcoming release March 4, 2015, we’d like to share new features here – and start today with something really exciting.

ISESteroids supports VBScript

ISESteroids supports VBScript

ISESteroids brings VBScript Support

As a pure PowerShell coder, VBScript support  may not seem life changing to you at first. If you have to deal with multiple scripting languages, it makes ISE a one-stop-for all, though.

And if you read on a bit, you’ll see just how important this feature is for pure PowerShell coders as well, because it is adjustable and can extend to other file types, too.

Beginning with the upcoming release, ISESteroids supports VBScript files. You can open them, edit them with most of the bells and whistles that applied to PowerShell scripts already, and you can execute them, too.

As you can see in the screen shot, ISESteroids adds the capability to create a number of new non-PowerShell document types. The VBScript code is fully  color-coded, and the green “Play” button is enabled, so a click on it (or F5) will execute VBScript code inside the ISE editor.

What About Other File Types?

VBScript support ships as an example, it really is only a single XML file that defines the language characteristics.

The true new feature is: ISESteroids supports just about any language now. You just need to describe the language with an easy to create XML-based language definition file.

VBScript Language File

VBScript Language File

You can take the shipping VBScript xml file as a template, and add support for other file type you work with. Needless to say we implemented the color coding in a way that is really fast, comparable to the PowerShell tokenizer, and works great even with very large VBScripts or other type of files.

The xml-based language definition file defines the keywords, and the file extensions that it should apply to, and the rest is done by ISESteroids. Adding support for, let’s say JavaScript, PerlScript, batch files, you name it, is now a matter of just a couple of minutes of work. And chances are there will be language files available soon from friendly users that share them with you.

We supply the xml file used for VBScript as a reference, and you can take it as a template for your own experiments.When you look at the XML definition file, you may notice that it is using a new custom format. We thought long and hard whether it made sense to use a preexisting format, for example the one used by notepad++, but then decided against it.

We’d like things to be as easy is possible, yet as powerful as can be. The existing formats we looked at were either very simple and limited (keywords only), or very flexible but hard to use (pure regular expression).

So we came up with a format that combines both, and can be simple or advanced, with plain keywords or sophisticated regular expressions. In the future, we may add converters that let you import existing language definitions from other ecosystems.

Scope of Support

Since we are only just adding universal language support, it will take some time to move over all the PowerShell specific features. For example, you currently can edit and execute VBScript, but you won’t get Intellisense, nor would you be able to set breakpoints and debug VBScript.

Most of the powerful editing concepts in ISESteroids already work with other languages, though. So you can select a command, and press F2 to multi-rename the selection. Or, you can use the search field in the upper right corner, to real-time highlight all instances of a search word, then press ENTER (or SHIFT-ENTER) to traverse the other instances.

Enhanced Code Snippet Support

One especially interesting feature that is new to the next release will also work for any file type: enhanced code snippet support. While basic code snippet functionality has always been part of ISE, now ISESteroids adds powerful hierarchical and contextual snippets plus a very easy to navigate snippet repository.

Hierarchical Snippet Support

Hierarchical Snippet Support

Snippet repositories are language specific, so you can create snippets for PowerShell, or VBScript, or any other file type you want. You can organize them into subfolders, attach keyboard shortcuts, and when you insert a snippet, it will display input fields – the areas that a user typically would customize.

Needless to say the snippets you create with ISESteroids work with pure ISE as well. The ISESteroids snippet system is based on the built-in snippet system, and adheres to the underlying  snippet XML standards. You won’t have the nice hierarchical selector and filter without ISESteroids, but the snippets you created will show up in ISE as well when you press CTRL+J.

What is next?

There are a lot more exciting features coming with the next release, so stay tuned.

I’d like to thank all of you that got a license for ISESteroids. I know it is sometimes a hassle to get approval for it. Nevertheless, your trust in ISESteroids and your great feedback are driving this forward.

As you can see, your license investment stays with you. We are re-investing all revenues into the product, and since you have a free and unlimited upgrade privilege for version 1 and version 2, it’s a one-time inestment for a long time of fun and time savings.

Yours,

Tobias