mirror of
https://github.com/vim/vim
synced 2025-05-02 14:27:44 +02:00
Include an updated vb indent script using vim9script. Also update the runtime indent test files Signed-off-by: Michael Soyka <mssr953@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
176 lines
4.2 KiB
Text
176 lines
4.2 KiB
Text
' vim: filetype=vb shiftwidth=4 expandtab
|
|
'
|
|
' START_INDENT
|
|
#Const Debug = False
|
|
|
|
#If Win64 Then
|
|
' Win64=true, Win32=true, Win16=false
|
|
#ElseIf Win32 Then
|
|
' Win32=true, Win16=false
|
|
#Else
|
|
' Win16=true
|
|
#End If
|
|
|
|
Public Type GEmployeeRecord ' Create user-defined type.
|
|
ID As Integer ' Define elements of data type.
|
|
Name As String * 20
|
|
Address As String * 30
|
|
Phone As Long
|
|
HireDate As Date
|
|
End Type
|
|
|
|
Public Enum InterfaceColors
|
|
icMistyRose = &HE1E4FF&
|
|
icSlateGray = &H908070&
|
|
icDodgerBlue = &HFF901E&
|
|
icDeepSkyBlue = &HFFBF00&
|
|
icSpringGreen = &H7FFF00&
|
|
icForestGreen = &H228B22&
|
|
icGoldenrod = &H20A5DA&
|
|
icFirebrick = &H2222B2&
|
|
End Enum
|
|
|
|
Enum SecurityLevel
|
|
IllegalEntry = -1
|
|
SecurityLevel1 = 0
|
|
SecurityLevel2 = 1
|
|
End Enum
|
|
|
|
Public Function TestConditional (number As Integer, ext As String) As Boolean
|
|
Dim inRange As Boolean
|
|
|
|
Select Case number
|
|
Case <= 0
|
|
inRange = False
|
|
Case > 10
|
|
inRange = False
|
|
Case Else
|
|
inRange = True
|
|
End Select
|
|
|
|
' This is a special case identified in the indent script.
|
|
Select Case number
|
|
End Select
|
|
|
|
If ext = ".xlm" Then
|
|
If inRange Then
|
|
TestConditional = True
|
|
Else
|
|
TestConditional = False
|
|
End If
|
|
ElseIf ext = ".xlsx" Then
|
|
If inRange Then
|
|
TestConditional = False
|
|
Else
|
|
TestConditional = True
|
|
End If
|
|
Else
|
|
TestConditional = False
|
|
End If
|
|
End Function
|
|
|
|
Private Sub TestIterators (lLimit As Integer, uLimit As Integer)
|
|
Dim a() As Variant
|
|
Dim elmt As Variant
|
|
Dim found As Boolean
|
|
Dim indx As Integer
|
|
Const specialValue As Integer = 5
|
|
|
|
If uLimit < lLimit Then
|
|
Exit Sub
|
|
End If
|
|
|
|
ReDim a(lLimit To uLimit)
|
|
For indx=lLimit To Ulimit
|
|
a(indx) = 2 * indx
|
|
Next indx
|
|
|
|
found = False
|
|
For Each elmt in a
|
|
If elmt = specialValue Then
|
|
found = True
|
|
End If
|
|
Next elmt
|
|
|
|
If found then
|
|
indx = uLimit
|
|
Do While indx >= lLimit
|
|
indx = indx - 1
|
|
Loop
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Public Sub TestMultiline (cellAddr As String, rowNbr As Long)
|
|
Dim rng As Range
|
|
|
|
Set rng = Range(cellAddr)
|
|
|
|
' Line continuation is implemented as a two-character sequence-
|
|
' whitespace followed by underscore.
|
|
With rng
|
|
.Cells(1,1).Value = _
|
|
"Line 1 of multiline string; " & _
|
|
"Line 2 of multiline string; " & _
|
|
"Line 3 of multiline string"
|
|
End With
|
|
|
|
' This code block omits the leading whitespace character and so
|
|
' the trailing underscore will not be treated as line continuation.
|
|
With rng
|
|
.Cells(1,1).Value =_
|
|
"Line 1 of multiline string; " &_
|
|
"Line 2 of multiline string; " &_
|
|
"Line 3 of multiline string"
|
|
End With
|
|
|
|
' The following lines have whitespace after the underscore character.
|
|
' This is contrary to Microsoft documentation but it is reported that
|
|
' some Microsoft editors allow it and will still treat the statement
|
|
' as line-continued.
|
|
With rng
|
|
rng.Cells(1,1).Value = _
|
|
"Line 1 of multiline string; " & _
|
|
"Line 2 of multiline string; " & _
|
|
"Line 3 of multiline string"
|
|
End With
|
|
|
|
End Sub
|
|
|
|
Private Sub TestStmtLabel()
|
|
GoTo stmtLabel
|
|
|
|
' Statement labels are never indented
|
|
stmtLabel:
|
|
|
|
End Sub
|
|
|
|
Public Static Function TestStatic(addend As Integer)
|
|
Dim Integer accumulator
|
|
accumulator = accumulator + addend
|
|
TestStatic = accumulator
|
|
End Function
|
|
|
|
Friend Function TestFriend(addend As Integer)
|
|
Static Integer accumulator
|
|
accumulator = accumulator + addend
|
|
TestFriend = accumulator
|
|
End Function
|
|
|
|
Sub TestTypeKeyword()
|
|
Type EmployeeRecord ' Create user-defined type.
|
|
ID As Integer ' Define elements of data type.
|
|
Name As String * 20
|
|
Address As String * 30
|
|
Phone As Long
|
|
HireDate As Date
|
|
End Type
|
|
Dim varType As EmployeeRecord
|
|
End Sub
|
|
|
|
Sub TestDateLiteralAfterLineContinuation
|
|
Dim birthday as Date
|
|
birthday = _
|
|
#January 1, 1901#
|
|
End Sub
|
|
' END_INDENT
|