mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-06-29 10:30:36 +00:00
Improves Sub line count (SUBs dialog).
This commit is contained in:
parent
24aafb4718
commit
5778275cc0
|
@ -8666,13 +8666,22 @@ FUNCTION idesubs$
|
||||||
lSorted$ = l$
|
lSorted$ = l$
|
||||||
lSortedSized$ = l$
|
lSortedSized$ = l$
|
||||||
|
|
||||||
REDIM TotalLines(0) AS LONG
|
'build headers (normal, sorted, normal with line count, sorted with line count)
|
||||||
|
l$ = l$ + " Type Arguments"
|
||||||
|
lSorted$ = l$
|
||||||
|
lSized$ = lSized$ + " Line count Type Arguments" + sep
|
||||||
|
lSortedSized$ = lSortedSized$ + " Line count Type Arguments"
|
||||||
|
|
||||||
|
REDIM SortedSubsList(1 TO 100) AS STRING * 998
|
||||||
|
REDIM CaseBkpSubsList(1 TO 100) AS STRING * 998
|
||||||
|
REDIM TotalLines(0 TO 100) AS LONG
|
||||||
|
|
||||||
TotalSUBs = 0
|
TotalSUBs = 0
|
||||||
ModuleSize = 0 'in lines
|
ModuleSize = 0 'in lines
|
||||||
SortedSubsFlag = idesortsubs
|
SortedSubsFlag = idesortsubs
|
||||||
SubClosed = 0
|
SubClosed = 0
|
||||||
|
|
||||||
|
|
||||||
FOR y = 1 TO iden
|
FOR y = 1 TO iden
|
||||||
a$ = idegetline(y)
|
a$ = idegetline(y)
|
||||||
IF SubClosed = 0 THEN ModuleSize = ModuleSize + 1
|
IF SubClosed = 0 THEN ModuleSize = ModuleSize + 1
|
||||||
|
@ -8715,9 +8724,8 @@ FUNCTION idesubs$
|
||||||
ELSE
|
ELSE
|
||||||
n$ = a$
|
n$ = a$
|
||||||
args$ = "()"
|
args$ = "()"
|
||||||
|
|
||||||
cleanSubName n$
|
|
||||||
END IF
|
END IF
|
||||||
|
cleanSubName n$
|
||||||
|
|
||||||
'If the user currently has the cursor over a SUB/FUNC name, let's highlight it
|
'If the user currently has the cursor over a SUB/FUNC name, let's highlight it
|
||||||
'instead of the currently in edition, for a quick link functionality:
|
'instead of the currently in edition, for a quick link functionality:
|
||||||
|
@ -8733,23 +8741,11 @@ FUNCTION idesubs$
|
||||||
n$ = "*" + n$
|
n$ = "*" + n$
|
||||||
FoundExternalSUBFUNC = -1
|
FoundExternalSUBFUNC = -1
|
||||||
ELSE
|
ELSE
|
||||||
|
IF SubClosed = 0 THEN ModuleSize = 0: GOSUB AddLineCount
|
||||||
SubClosed = 0
|
SubClosed = 0
|
||||||
ModuleSize = 0
|
ModuleSize = 0
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF TotalSUBs = 0 THEN
|
|
||||||
l$ = l$ + " Type Arguments"
|
|
||||||
lSorted$ = l$
|
|
||||||
lSized$ = lSized$ + " Line count Type Arguments" + sep
|
|
||||||
lSortedSized$ = lSortedSized$ + " Line count Type Arguments"
|
|
||||||
ELSE
|
|
||||||
num$ = LTRIM$(STR$(TotalLines(TotalSUBs)))
|
|
||||||
IF pInsideDECLARE THEN num$ = "external"
|
|
||||||
lSized$ = lSized$ + CHR$(195) + CHR$(196) + pn$ + " " + _
|
|
||||||
CHR$(16) + CHR$(2) + SPACE$(9 - LEN(num$)) + num$ + " " _
|
|
||||||
+ psf$ + CHR$(16) + CHR$(16) + pargs$ + sep
|
|
||||||
END IF
|
|
||||||
|
|
||||||
IF LEN(n$) <= maxModuleNameLen THEN
|
IF LEN(n$) <= maxModuleNameLen THEN
|
||||||
n$ = n$ + SPACE$(maxModuleNameLen - LEN(n$))
|
n$ = n$ + SPACE$(maxModuleNameLen - LEN(n$))
|
||||||
ELSE
|
ELSE
|
||||||
|
@ -8762,19 +8758,25 @@ FUNCTION idesubs$
|
||||||
END IF
|
END IF
|
||||||
l$ = l$ + sep + CHR$(195) + CHR$(196) + n$ + " " + CHR$(16) + CHR$(2) + _
|
l$ = l$ + sep + CHR$(195) + CHR$(196) + n$ + " " + CHR$(16) + CHR$(2) + _
|
||||||
sf$ + CHR$(16) + CHR$(16) + args$
|
sf$ + CHR$(16) + CHR$(16) + args$
|
||||||
psf$ = sf$
|
|
||||||
pn$ = n$
|
|
||||||
pargs$ = args$
|
|
||||||
pInsideDECLARE = InsideDECLARE
|
|
||||||
|
|
||||||
'Populate SortedSubsList()
|
num$ = CHR$(254) 'placeholder - will be replaced when End Sub/Function is found
|
||||||
|
IF InsideDECLARE THEN num$ = "external"
|
||||||
|
lSized$ = lSized$ + CHR$(195) + CHR$(196) + n$ + " " + _
|
||||||
|
CHR$(16) + CHR$(2) + SPACE$(9 - LEN(num$)) + num$ + " " _
|
||||||
|
+ sf$ + CHR$(16) + CHR$(16) + args$ + sep
|
||||||
|
|
||||||
|
'Populate SortedSubsList() and helper arrays
|
||||||
TotalSUBs = TotalSUBs + 1
|
TotalSUBs = TotalSUBs + 1
|
||||||
ListItemLength = LEN(n$ + " " + sf$ + args$)
|
IF NOT InsideDECLARE THEN LastOpenSUB = TotalSUBs
|
||||||
REDIM _PRESERVE SortedSubsList(1 TO TotalSUBs) AS STRING * 998
|
listItem$ = n$ + " " + CHR$(1) + CHR$(16) + CHR$(2) + sf$ + CHR$(16) + CHR$(16) + args$
|
||||||
REDIM _PRESERVE CaseBkpSubsList(1 TO TotalSUBs) AS STRING * 998
|
ListItemLength = LEN(listItem$)
|
||||||
REDIM _PRESERVE TotalLines(0 TO TotalSUBs) AS LONG
|
IF TotalSUBs > UBOUND(SortedSubsList) THEN
|
||||||
CaseBkpSubsList(TotalSUBs) = n$ + " " + CHR$(1) + CHR$(16) + CHR$(2) + sf$ + CHR$(16) + CHR$(16) + args$
|
REDIM _PRESERVE SortedSubsList(1 TO TotalSUBs + 99) AS STRING * 998
|
||||||
SortedSubsList(TotalSUBs) = UCASE$(CaseBkpSubsList(TotalSUBs))
|
REDIM _PRESERVE CaseBkpSubsList(1 TO TotalSUBs + 99) AS STRING * 998
|
||||||
|
REDIM _PRESERVE TotalLines(0 TO TotalSUBs + 99) AS LONG
|
||||||
|
END IF
|
||||||
|
SortedSubsList(TotalSUBs) = UCASE$(listItem$)
|
||||||
|
CaseBkpSubsList(TotalSUBs) = listItem$
|
||||||
MID$(CaseBkpSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength)
|
MID$(CaseBkpSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength)
|
||||||
MID$(SortedSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength)
|
MID$(SortedSubsList(TotalSUBs), 992, 6) = MKL$(y) + MKI$(ListItemLength)
|
||||||
ELSE 'no sf
|
ELSE 'no sf
|
||||||
|
@ -8794,24 +8796,20 @@ FUNCTION idesubs$
|
||||||
DIM comment AS _BYTE, quote AS _BYTE
|
DIM comment AS _BYTE, quote AS _BYTE
|
||||||
FindQuoteComment nca$, sf, comment, quote
|
FindQuoteComment nca$, sf, comment, quote
|
||||||
IF comment OR quote THEN cursor = sf: GOTO LookForENDSUB
|
IF comment OR quote THEN cursor = sf: GOTO LookForENDSUB
|
||||||
TotalLines(TotalSUBs) = ModuleSize
|
GOSUB AddLineCount
|
||||||
SubClosed = -1
|
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
TotalLines(TotalSUBs) = ModuleSize
|
IF SubClosed = 0 THEN GOSUB AddLineCount
|
||||||
IF TotalSUBs > 0 THEN
|
|
||||||
num$ = LTRIM$(STR$(TotalLines(TotalSUBs)))
|
|
||||||
IF pInsideDECLARE THEN num$ = "external"
|
|
||||||
lSized$ = lSized$ + CHR$(195) + CHR$(196) + pn$ + " " + _
|
|
||||||
SPACE$(9 - LEN(num$)) + CHR$(16) + CHR$(2) + num$ + " " + _
|
|
||||||
psf$ + CHR$(16) + CHR$(16) + pargs$
|
|
||||||
END IF
|
|
||||||
|
|
||||||
MID$(l$, _INSTRREV(l$, CHR$(195)), 1) = CHR$(192)
|
MID$(l$, _INSTRREV(l$, CHR$(195)), 1) = CHR$(192)
|
||||||
MID$(lSized$, _INSTRREV(lSized$, CHR$(195)), 1) = CHR$(192)
|
MID$(lSized$, _INSTRREV(lSized$, CHR$(195)), 1) = CHR$(192)
|
||||||
|
|
||||||
|
'fix arrays to remove empty items
|
||||||
|
REDIM _PRESERVE SortedSubsList(1 TO TotalSUBs) AS STRING * 998
|
||||||
|
REDIM _PRESERVE CaseBkpSubsList(1 TO TotalSUBs) AS STRING * 998
|
||||||
|
REDIM _PRESERVE TotalLines(0 TO TotalSUBs) AS LONG
|
||||||
|
|
||||||
IF TotalSUBs > 1 THEN
|
IF TotalSUBs > 1 THEN
|
||||||
sort SortedSubsList()
|
sort SortedSubsList()
|
||||||
|
|
||||||
|
@ -9094,6 +9092,16 @@ FUNCTION idesubs$
|
||||||
END IF
|
END IF
|
||||||
RETURN
|
RETURN
|
||||||
|
|
||||||
|
AddLineCount:
|
||||||
|
ModuleSize = ModuleSize + 1
|
||||||
|
TotalLines(LastOpenSUB) = ModuleSize
|
||||||
|
i = INSTR(lSized$, CHR$(254))
|
||||||
|
IF i THEN 'check if it's there, but it *has* to be there.
|
||||||
|
num$ = LTRIM$(STR$(ModuleSize))
|
||||||
|
lSized$ = LEFT$(lSized$, i - LEN(num$)) + num$ + MID$(lSized$, i + 1)
|
||||||
|
END IF
|
||||||
|
SubClosed = -1
|
||||||
|
RETURN
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue