Indent the VBS console with 4 spaces
This commit is contained in:
parent
523d301d1e
commit
37eb9d70fe
177
console.vbs
177
console.vbs
|
@ -4,147 +4,138 @@ On Error Resume Next
|
|||
Private input, output, runButton, clearButton
|
||||
|
||||
Private Sub ConsoleLog(message, color)
|
||||
Dim entry
|
||||
Set entry = document.createElement("div")
|
||||
With entry.style
|
||||
.margin = "0"
|
||||
.padding = "1px"
|
||||
.borderBottom = "1px solid lightgray"
|
||||
If Not IsNull(color) Then
|
||||
.color = color
|
||||
End If
|
||||
End With
|
||||
entry.appendChild(document.createTextNode(CStr(message)))
|
||||
output.appendChild(entry)
|
||||
Dim entry
|
||||
Set entry = document.createElement("div")
|
||||
With entry.style
|
||||
.margin = "0"
|
||||
.padding = "1px"
|
||||
.borderBottom = "1px solid lightgray"
|
||||
If Not IsNull(color) Then
|
||||
.color = color
|
||||
End If
|
||||
End With
|
||||
entry.appendChild(document.createTextNode(CStr(message)))
|
||||
output.appendChild(entry)
|
||||
End Sub
|
||||
|
||||
Sub Log(message)
|
||||
ConsoleLog message, Null
|
||||
ConsoleLog message, Null
|
||||
End Sub
|
||||
|
||||
Sub Debug(message)
|
||||
ConsoleLog message, "darkgray"
|
||||
ConsoleLog message, "darkgray"
|
||||
End Sub
|
||||
|
||||
Sub Info(message)
|
||||
ConsoleLog message, Null
|
||||
ConsoleLog message, Null
|
||||
End Sub
|
||||
|
||||
Sub Warn(message)
|
||||
ConsoleLog message, "orange"
|
||||
ConsoleLog message, "orange"
|
||||
End Sub
|
||||
|
||||
Sub Error(message)
|
||||
ConsoleLog message, "red"
|
||||
ConsoleLog message, "red"
|
||||
End Sub
|
||||
|
||||
Sub Assert(condition, message)
|
||||
If Not condition Then
|
||||
Error message
|
||||
End If
|
||||
If Not condition Then
|
||||
Error message
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub Clear
|
||||
output.innerHTML = ""
|
||||
output.innerHTML = ""
|
||||
End Sub
|
||||
|
||||
Private Function RemoveCr (text)
|
||||
RemoveCr = Replace(text, vbCrLf, vbLf)
|
||||
RemoveCr = Replace(text, vbCrLf, vbLf)
|
||||
End Function
|
||||
|
||||
Private Function GetSelectedText (element)
|
||||
Dim normalizedValue, range, inputRange, endRange
|
||||
Set range = document.selection.createRange()
|
||||
If Not IsNull(range) And range.parentElement() = element Then
|
||||
normalizedValue = RemoveCr(element.value)
|
||||
Set inputRange = element.createTextRange()
|
||||
inputRange.moveToBookmark range.getBookmark()
|
||||
Set endRange = element.createTextRange()
|
||||
endRange.collapse False
|
||||
|
||||
'Selection does not begin at the end of the input
|
||||
If inputRange.compareEndPoints("StartToEnd", endRange) < 0 Then
|
||||
Dim selectionStart, selectionEnd
|
||||
selectionStart = UBound(Split(Right(normalizedValue, Len(normalizedValue) - selectionStart), vbLf)) - inputRange.moveStart("character", -Len(element.value))
|
||||
|
||||
selectionEnd = Len(element.value)
|
||||
If inputRange.compareEndPoints("EndToEnd", endRange) < 0 Then
|
||||
selectionEnd = UBound(Split(Right(normalizedValue, Len(normalizedValue) - selectionEnd), vbCrLf)) - inputRange.moveEnd("character", -Len(element.value))
|
||||
End If
|
||||
|
||||
GetSelectedText = Left(Right(element.value, Len(element.value) - selectionStart), selectionEnd - selectionStart)
|
||||
Else
|
||||
GetSelectedText = ""
|
||||
End If
|
||||
|
||||
Else
|
||||
GetSelectedText = ""
|
||||
End If
|
||||
Dim normalizedValue, range, inputRange, endRange
|
||||
Set range = document.selection.createRange()
|
||||
If Not IsNull(range) And range.parentElement() = element Then
|
||||
normalizedValue = RemoveCr(element.value)
|
||||
Set inputRange = element.createTextRange()
|
||||
inputRange.moveToBookmark range.getBookmark()
|
||||
Set endRange = element.createTextRange()
|
||||
endRange.collapse False
|
||||
|
||||
'Selection does not begin at the end of the input
|
||||
If inputRange.compareEndPoints("StartToEnd", endRange) < 0 Then
|
||||
Dim selectionStart, selectionEnd
|
||||
selectionStart = UBound(Split(Right(normalizedValue, Len(normalizedValue) - selectionStart), vbLf)) - inputRange.moveStart("character", -Len(element.value))
|
||||
|
||||
selectionEnd = Len(element.value)
|
||||
If inputRange.compareEndPoints("EndToEnd", endRange) < 0 Then
|
||||
selectionEnd = UBound(Split(Right(normalizedValue, Len(normalizedValue) - selectionEnd), vbCrLf)) - inputRange.moveEnd("character", -Len(element.value))
|
||||
End If
|
||||
|
||||
GetSelectedText = Left(Right(element.value, Len(element.value) - selectionStart), selectionEnd - selectionStart)
|
||||
Else
|
||||
GetSelectedText = ""
|
||||
End If
|
||||
Else
|
||||
GetSelectedText = ""
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Sub Run
|
||||
Dim selected, code
|
||||
selected = GetSelectedText(input)
|
||||
code = selected
|
||||
If IsEmpty(selected) Then
|
||||
code = input.value
|
||||
End If
|
||||
If IsEmpty(Trim(code)) Then
|
||||
Exit Sub
|
||||
End If
|
||||
ConsoleLog code, "lightblue"
|
||||
Err.Clear
|
||||
Execute code
|
||||
If Err.Number <> 0 Then
|
||||
Error "Error " & Err.Number & " at " & Err.Source & ": " & Err.Description
|
||||
End If
|
||||
Dim selected, code
|
||||
selected = GetSelectedText(input)
|
||||
code = selected
|
||||
If IsEmpty(selected) Then code = input.value
|
||||
If IsEmpty(Trim(code)) Then Exit Sub
|
||||
ConsoleLog code, "lightblue"
|
||||
Err.Clear
|
||||
Execute code
|
||||
If Err.Number <> 0 Then
|
||||
Error "Error " & Err.Number & " at " & Err.Source & ": " & Err.Description
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub InputKeyPress
|
||||
If window.event.keyCode = 13 And window.event.shiftKey Then
|
||||
Run
|
||||
End If
|
||||
If window.event.keyCode = 13 And window.event.shiftKey Then Run
|
||||
End Sub
|
||||
|
||||
'Auto-detect the wizard's browser extensions
|
||||
Private Function InWebWizard()
|
||||
InWebWizard = TypeName(window.external) = "INewWDEvents"
|
||||
InWebWizard = TypeName(window.external) = "INewWDEvents"
|
||||
End Function
|
||||
|
||||
Private Function InIE7()
|
||||
InIE7 = InStr(navigator.userAgent, "MSIE 7.0")
|
||||
InIE7 = InStr(navigator.userAgent, "MSIE 7.0")
|
||||
End Function
|
||||
|
||||
Sub window_onload
|
||||
With document
|
||||
Set input = .getElementById("input")
|
||||
Set output = .getElementById("output")
|
||||
Set runButton = .getElementById("runButton")
|
||||
Set clearButton = .getElementById("clearButton")
|
||||
End With
|
||||
With document
|
||||
Set input = .getElementById("input")
|
||||
Set output = .getElementById("output")
|
||||
Set runButton = .getElementById("runButton")
|
||||
Set clearButton = .getElementById("clearButton")
|
||||
End With
|
||||
|
||||
runButton.onclick = GetRef("Run")
|
||||
clearButton.onclick = GetRef("Clear")
|
||||
input.onkeypress = GetRef("InputKeyPress")
|
||||
runButton.onclick = GetRef("Run")
|
||||
clearButton.onclick = GetRef("Clear")
|
||||
input.onkeypress = GetRef("InputKeyPress")
|
||||
|
||||
If InWebWizard() Then
|
||||
window.external.SetHeaderText "VBScript Console", "Explore this wizard's VBScript environment."
|
||||
window.external.SetWizardButtons True, False, False
|
||||
End If
|
||||
If InWebWizard() Then
|
||||
window.external.SetHeaderText "VBScript Console", "Explore this wizard's VBScript environment."
|
||||
window.external.SetWizardButtons True, False, False
|
||||
End If
|
||||
|
||||
'For some reason, IE 7 messes up the textarea's width and height
|
||||
'pretty badly. We hardcode the height, removing a little margin,
|
||||
'and add some margin to the output.
|
||||
'Setting the input's width causes it to somehow divide itself by 2 on every keystroke.
|
||||
If InIE7() Then
|
||||
input.style.height = document.documentElement.clientHeight - 7 & "px"
|
||||
output.style.marginLeft = "7px"
|
||||
End If
|
||||
'For some reason, IE 7 messes up the textarea's width and height
|
||||
'pretty badly. We hardcode the height, removing a little margin,
|
||||
'and add some margin to the output.
|
||||
'Setting the input's width causes it to somehow divide itself by 2 on every keystroke.
|
||||
If InIE7() Then
|
||||
input.style.height = document.documentElement.clientHeight - 7 & "px"
|
||||
output.style.marginLeft = "7px"
|
||||
End If
|
||||
End Sub
|
||||
|
||||
'The web wizard specification requires every page to have an OnBack procedure
|
||||
Sub OnBack
|
||||
If InWebWizard() Then
|
||||
window.external.FinalBack
|
||||
End If
|
||||
If InWebWizard() Then window.external.FinalBack
|
||||
End Sub
|
Loading…
Reference in New Issue