Handle the ".[]" syntax in method signature popup. A few enhancements in the procedure popup.

[DEVELOPMENT ENVIRONMENT]
* NEW: Procedure popup: Underline the startup method in the procedure list.
* NEW: Procedure popup: Don't show the "STATIC" button in a module.
* NEW: Code editor: The ".[]" syntax is now handled when displaying method signatures.
This commit is contained in:
gambas 2021-06-16 23:26:03 +02:00
parent 78b6bfbf92
commit 899c3138e2
2 changed files with 15 additions and 11 deletions

View file

@ -1827,7 +1827,7 @@ Private Sub GetExpressionStart(aExpr As String[], aType As Integer[]) As Integer
End
Public Function GetExpressionType(aExpr As String[], aType As Integer[], bPointAfter As Boolean) As String
Public Function GetExpressionType(aExpr As String[], aType As Integer[], bPointAfter As Boolean, Optional sAfter As String) As String
Dim iInd As Integer
Dim aWait As New String[]
@ -1918,6 +1918,7 @@ Public Function GetExpressionType(aExpr As String[], aType As Integer[], bPointA
Return
Endif
Else
If sAfter = "[" Then Return sType
Return
Endif
Else If sPattern = ")" Then
@ -2093,7 +2094,7 @@ Private Function GetExpressionSignature(aExpr As String[], aType As Integer[]) A
$hSymbol = Null
$iArgSignature = 0
For iInd = aExpr.Count - 1 To 0 Step -1
For iInd = aExpr.Count - 1 DownTo 0
sPattern = aExpr[iInd]
If sPattern = ")" Then
@ -2126,8 +2127,8 @@ Private Function GetExpressionSignature(aExpr As String[], aType As Integer[]) A
aExpr.Remove(iInd, -1)
aType.Remove(iInd, -1)
sType = GetExpressionType(aExpr, aType, False)
sType = GetExpressionType(aExpr, aType, False, sPattern)
'IF NOT $hSymbol THEN
If sType Then
If sPattern = "(" Then

View file

@ -8,6 +8,7 @@ Private $sClass As String
Private $sFind As String
Private $fTimerFind As Float
Private $hModule As FEditor
Private $bStatic As Boolean
Private $bNoFilter As Boolean
Static Public Sub Popup(hModule As FEditor, sClass As String, aProc As String[], iCurrent As Integer, X As Integer, Y As Integer, W As Integer, H As Integer) As Integer
@ -32,6 +33,10 @@ Public Sub Init(hModule As FEditor, sClass As String, aProc As String[], iCurren
panFilter.Visible = $sClass
sepFilter.Visible = $sClass
If $sClass Then
$bStatic = File.Ext($hModule.Path) = "module"
btnShowStatic.Visible = Not $bStatic
Endif
FilterProc
@ -216,15 +221,13 @@ Public Sub gvwProc_Draw(X As Integer, Y As Integer, Width As Integer, Height As
If hSymbol And If hSymbol.NotPublic Then Paint.Background = Color.Merge(Paint.Background, Color.TextBackground, 0.3)
If $sClass = Project.Startup And If sName = "Main" Then
Paint.Font.Underline = True
Endif
If $aFilter[Row] = $iInit Then Paint.DrawTextShadow(sName, X + 2, Y, Width - 4, Height, Align.Left)
Paint.DrawText(sName, X + 2, Y, Width - 4, Height, Align.Left)
' If Row = $iInit Then
' Paint.Rectangle(X + 0.5, Y + 0.5, Width - 1, Height - 1)
' Paint.Background = Color.SelectedBackground
' Paint.Stroke
' Endif
End
Private Sub FilterProc()
@ -253,7 +256,7 @@ Private Sub FilterProc()
Endif
If panFilter.Visible Then
bShowStatic = btnShowStatic.Value
bShowStatic = $bStatic Or btnShowStatic.Value
bShowPublic = btnShowPublic.Value
bShowPrivate = btnShowPrivate.Value
bShowEvent = btnShowEvent.Value