PowerShell In GUI Blog

PowerShell GUI Box Just In A Few Clicks

WordPress PowerShell Code Coloring Test

with one comment

I have already written about how it’s possibly to post Powershell code here. As a year turned, why don’t check the state of affairs again?

My example is very simple and doesn’t cover all aspects of code. On the other hand, great sheets of code are not what is easily comparable with eyes.

1. This way my example is eyed in ISE:

Bugs are rare, however, it’s necessary to list them:

1.1 String data used without quotes is colored as a function (line 10)

1.2 Methods are not colored. It’s a typical trick, however, since nobody may know what it will be after the run of code. After having run the code, it’s considered here that no reason to re-color already colored code. (lines 10 and 42)

1.3 Property ‘Value’ is not colored (line 42).

Anyway, the coloring left the reader in a mood that all is healthy here.

2. Using Copy as HTML in PowerGUI 2.4 and Chrome 11, after adding manually line breaks (why doesn’t it type
s?), spaces and deleting trailing spaces after backticks (not in this sample), the following is workable:

cls
#region WordPress posting code test 
#this is a test of Powershell code coloring
[string]$stringVar1="string 1"
[string]$private:stringVar2='string 2'
[string]$script:stringVar3=
@' 
string data 
'@ 
[scriptblock]$global:sb= {{Write-Hostscriptblock}.Invoke();}; 
function 
write1{Write-Host $stringVar1;} 
function private:write2 
{param([string]$str2='')Write-Host $str2;} 
function script:write3 
#this is a function

Write-Host$script:stringVar3

function global:Print-SB 

<# 
.SYNOPSIS 
This is a code coloring test. 
.DESCRIPTION 
This test function represents an advanced Powershell function syntax. 
.PARAMETER 
Param Demonstrates how a scriptblock can be passed as a reference. 
.EXAMPLE 
PS C:\> Print-SB ([ref]$sb) 
#> 
[CmdletBinding()] 
param( [Parameter(Position=0, Mandatory=$true)] 
[ref]$Param 

Begin{} 
Process{$Param.Value.Invoke()} 
End{} 

write1 
private:write2 $private:stringVar2
script:write3 
Print-SB ([ref]$global:sb
#endregion WordPress posting code test

2.1 In the second code snippet we have numerous problems with names of functions, both where they are declared and where they are called.

2.2 Write-Host inside the second function

2.3 Such stuff like attributes in an advanced function.

To conclude this section, use the Copy as HTML option is a choice if manual editing doesn’t fatigue you.

3. WordPress provides a set of tags. Several parameters might do the life of a codeblogger simpler, especially 'highlight'.
cls
#region WordPress posting code test
#this is a test of Powershell code coloring
[string]$stringVar1 = "string 1";
[string]$private:stringVar2 = 'string 2';
[string]$script:stringVar3 =
@'
string data
'@
[scriptblock]$global:sb = {{Write-Host scriptblock}.Invoke();};
function
write1{Write-Host $stringVar1;}
function private:write2
{param([string]$str2 = '')Write-Host $str2;}
function script:write3
#this is a function
{

	Write-Host $script:stringVar3;
}
function global:Print-SB
{
<#
	.SYNOPSIS
		This is a code coloring test.

	.DESCRIPTION
		This test function represents an advanced Powershell function syntax.

	.PARAMETER  Param
		Demonstrates how a scriptblock can be passed as a reference.

	.EXAMPLE
		PS C:\> Print-SB ([ref]$sb)
#>
	[CmdletBinding()]
	param(
		  [Parameter(Position=0, Mandatory=$true)]
		  [ref]$Param
		  )
	Begin{}
	Process{$Param.Value.Invoke()}
	End{}
}
write1
private:write2 $private:stringVar2;
script:write3
Print-SB ([ref]$global:sb)
#endregion WordPress posting code test

However, the overall state is not appropriate, from my point of view. Yes, I know that the 'Frustration-Free' trademark is not WordPress's (as it is not Quest's too), but there is a room for improvement:

3.1 Variable names (lines 5, 6, 46, 48)
3.2 Function declarations and names (lines 11-13, 15, 21, 45-48)
3.3 A blob string (lines 7-9)
3.4 A specific to advanced functions comment-description (lines 23-35)
3.5 Types (lines 4-6, 10, 14)
3.6 Unquoted string (line 10)
I'll report these problems to Happiness engineers, maybe they share a bit of their happiness? 😉

Advertisements

Written by Alexander Petrovskiy

April 27, 2011 at 6:37 am

Posted in ISE, PowerGUI, Powershell, WordPress

Tagged with

One Response

Subscribe to comments with RSS.

  1. […] WordPress PowerShell Code Coloring Test […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: