Subversion Repositories Kolibri OS

Rev

Rev 9010 | Rev 9060 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9010 Rev 9050
Line 78... Line 78...
78
        enc*: INTEGER;
78
        enc*: INTEGER;
79
        table: Search.IdxTable;
79
        table: Search.IdxTable;
80
        foundList: List.tList;
80
        foundList: List.tList;
81
        idxData: Search.tBuffer;
81
        idxData: Search.tBuffer;
82
        foundSel: INTEGER;
82
        foundSel: INTEGER;
83
        searchText: tString
83
        searchText: tString;
-
 
84
        chLog*: ChangeLog.tLog;
-
 
85
        maxLength*: INTEGER
84
    END;
86
    END;
Line 85... Line 87...
85
 
87
 
Line 391... Line 393...
391
                PrintLex(text, line, i, n, y, colors.comment, backColor);
393
                PrintLex(text, line, i, n, y, colors.comment, backColor);
392
                i := n
394
                i := n
393
            ELSIF (c = "'") OR (c = '"') THEN
395
            ELSIF (c = "'") OR (c = '"') THEN
394
                String(text, line, i, y, backColor)
396
                String(text, line, i, y, backColor)
395
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
397
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
396
                ident(text, i, i, y, line, backColor, FALSE)
398
                ident(text, i, i, y, line, backColor, Lang.isCS(lang))
397
            ELSIF isFASMdelim(c) THEN
399
            ELSIF isFASMdelim(c) THEN
398
                PrintLex(text, line, i, i, y, colors.delim, backColor)
400
                PrintLex(text, line, i, i, y, colors.delim, backColor)
399
            ELSIF U.isDigit(c) THEN
401
            ELSIF U.isDigit(c) THEN
400
                hex := FALSE;
402
                hex := FALSE;
401
                k := i;
403
                k := i;
Line 436... Line 438...
436
                cond := 0
438
                cond := 0
437
            ELSIF (c = "'") OR (c = '"') THEN
439
            ELSIF (c = "'") OR (c = '"') THEN
438
                String(text, line, i, y, backColor);
440
                String(text, line, i, y, backColor);
439
                cond := 0
441
                cond := 0
440
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
442
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
441
                ident(text, i, i - ORD((i > 0) & (getChar(line, i - 1) = "#")), y, line, backColor, TRUE);
443
                ident(text, i, i - ORD((i > 0) & (getChar(line, i - 1) = "#")), y, line, backColor, Lang.isCS(lang));
442
                cond := 0
444
                cond := 0
443
            ELSIF U.isDigit(c) THEN
445
            ELSIF U.isDigit(c) THEN
444
                k := i;
446
                k := i;
445
                INC(i);
447
                INC(i);
446
                c := getChar(line, i);
448
                c := getChar(line, i);
Line 555... Line 557...
555
            END;
557
            END;
556
            DEC(i);
558
            DEC(i);
557
            PrintLex(text, line, k, i, y, color, backColor);
559
            PrintLex(text, line, k, i, y, color, backColor);
558
            cond := 0
560
            cond := 0
559
        ELSIF (depth = 0) & (U.isLetter(c) OR (c = "_")) THEN
561
        ELSIF (depth = 0) & (U.isLetter(c) OR (c = "_")) THEN
560
            ident(text, i, i, y, line, backColor, TRUE);
562
            ident(text, i, i, y, line, backColor, Lang.isCS(lang));
561
            cond := 0
563
            cond := 0
562
        ELSIF c = "(" THEN
564
        ELSIF c = "(" THEN
563
            cond := 1
565
            cond := 1
564
        ELSIF c = "*" THEN
566
        ELSIF c = "*" THEN
565
            IF cond = 1 THEN
567
            IF cond = 1 THEN
Line 643... Line 645...
643
                END;
645
                END;
644
                DEC(i);
646
                DEC(i);
645
                PrintLex(text, line, k, i, y, colors.num, backColor);
647
                PrintLex(text, line, k, i, y, colors.num, backColor);
646
                cond := 0
648
                cond := 0
647
            ELSIF U.isLetter(c) OR (c = "_") THEN
649
            ELSIF U.isLetter(c) OR (c = "_") THEN
648
                ident(text, i, i, y, line, backColor, TRUE);
650
                ident(text, i, i, y, line, backColor, Lang.isCS(lang));
649
                cond := 0
651
                cond := 0
650
            ELSE
652
            ELSE
651
                cond := 0
653
                cond := 0
652
            END
654
            END
Line 742... Line 744...
742
                END;
744
                END;
743
                DEC(i);
745
                DEC(i);
744
                PrintLex(text, line, k, i, y, colors.num, backColor);
746
                PrintLex(text, line, k, i, y, colors.num, backColor);
745
                cond := 0
747
                cond := 0
746
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
748
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
747
                ident(text, i, i, y, line, backColor, FALSE);
749
                ident(text, i, i, y, line, backColor, Lang.isCS(lang));
748
                cond := 0
750
                cond := 0
749
            ELSE
751
            ELSE
750
                cond := 0
752
                cond := 0
751
            END
753
            END
752
        ELSIF depth IN {1, 3} THEN
754
        ELSIF depth IN {1, 3} THEN
Line 784... Line 786...
784
                    INC(i)
786
                    INC(i)
785
                END;
787
                END;
786
                DEC(i);
788
                DEC(i);
787
                PrintLex(text, line, k, i, y, colors.num, backColor)
789
                PrintLex(text, line, k, i, y, colors.num, backColor)
788
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
790
            ELSIF (U.isLetter(c) OR (c = "_")) THEN
789
                ident(text, i, i, y, line, backColor, TRUE)
791
                ident(text, i, i, y, line, backColor, Lang.isCS(lang))
790
            END
792
            END
791
        ELSIF depth = 1 THEN
793
        ELSIF depth = 1 THEN
792
            IF c = "]" THEN
794
            IF c = "]" THEN
793
                depth := 0
795
                depth := 0
794
            END
796
            END
Line 1177... Line 1179...
1177
 
1179
 
1178
PROCEDURE scroll* (text: tText; h, v: INTEGER);
1180
PROCEDURE scroll* (text: tText; h, v: INTEGER);
1179
BEGIN
1181
BEGIN
1180
    INC(text.scroll.X, h);
1182
    INC(text.scroll.X, h);
1181
    INC(text.scroll.Y, v);
1183
    INC(text.scroll.Y, v);
1182
    text.scroll.X := MIN(MAX(text.scroll.X, 0), Lines.maxLength);
1184
    text.scroll.X := MIN(MAX(text.scroll.X, 0), text.maxLength);
1183
    text.scroll.Y := MIN(MAX(text.scroll.Y, 0), text.count - 1)
1185
    text.scroll.Y := MIN(MAX(text.scroll.Y, 0), text.count - 1)
Line 1184... Line 1186...
1184
END scroll;
1186
END scroll;
Line 1262... Line 1264...
1262
        guard := item(tGuard);
1264
        guard := item(tGuard);
1263
        text.edition := guard;
1265
        text.edition := guard;
1264
        text.modified := TRUE
1266
        text.modified := TRUE
1265
    END;
1267
    END;
Line 1266... Line 1268...
1266
 
1268
 
1267
    item := ChangeLog.Log.first;
1269
    item := ChangeLog.CL.Log.first;
1268
    WHILE item # guard DO
1270
    WHILE item # guard DO
1269
        ChangeLog.redo(item);
1271
        ChangeLog.redo(item);
1270
        item := item.next
1272
        item := item.next
1271
    END;
1273
    END;
Line 1577... Line 1579...
1577
            ((x1 > 0) & isWordChar(getChar(curLine, x1 - 1))) OR
1579
            ((x1 > 0) & isWordChar(getChar(curLine, x1 - 1))) OR
1578
            ((x2 < curLine.length) & isWordChar(getChar(curLine, x2))) THEN
1580
            ((x2 < curLine.length) & isWordChar(getChar(curLine, x2))) THEN
1579
            str := ""
1581
            str := ""
1580
        END
1582
        END
1581
    END;
1583
    END;
1582
    IF search(text, str, TRUE, TRUE) THEN END
1584
    IF search(text, str, Lang.isCS(text.lang), TRUE) THEN END
1583
END wordSel;
1585
END wordSel;
Line 1584... Line 1586...
1584
 
1586
 
1585
 
1587
 
Line 1807... Line 1809...
1807
    IF (text.lang # Lang.langNone) & text.comments THEN
1809
    IF (text.lang # Lang.langNone) & text.comments THEN
1808
        Comments(text)
1810
        Comments(text)
1809
    END;
1811
    END;
1810
    IF text.guard THEN
1812
    IF text.guard THEN
1811
        NEW(guard);
1813
        NEW(guard);
1812
        List.append(ChangeLog.Log, guard);
1814
        List.append(ChangeLog.CL.Log, guard);
1813
        text.edition := guard;
1815
        text.edition := guard;
1814
        text.guard := FALSE;
1816
        text.guard := FALSE;
1815
    ELSE
1817
    ELSE
1816
        guard := text.edition
1818
        guard := text.edition
1817
    END;
1819
    END;
Line 1942... Line 1944...
1942
    G.SetColor(canvas, K.borderColor);
1944
    G.SetColor(canvas, K.borderColor);
1943
    G.Rect(canvas, 0, 0, size.X - 1, size.Y - 1);
1945
    G.Rect(canvas, 0, 0, size.X - 1, size.Y - 1);
1944
END draw;
1946
END draw;
Line -... Line 1947...
-
 
1947
 
-
 
1948
 
-
 
1949
PROCEDURE switch* (text: tText);
-
 
1950
BEGIN
-
 
1951
    ChangeLog.set(text.chLog);
-
 
1952
    Lines.setMaxLength(text.maxLength)
-
 
1953
END switch;
1945
 
1954
 
1946
 
1955
 
1947
PROCEDURE create (fileName: RW.tFileName): tText;
1956
PROCEDURE create (fileName: RW.tFileName): tText;
1948
VAR
1957
VAR
1949
    text: tText;
1958
    text: tText;
-
 
1959
BEGIN
-
 
1960
    NEW(text);
1950
BEGIN
1961
    text.maxLength := 64;
1951
    NEW(text);
1962
    text.chLog := ChangeLog.create(text.maxLength);
1952
    NEW(text.cursor);
1963
    NEW(text.cursor);
1953
    NEW(text.select2);
1964
    NEW(text.select2);
1954
    text.cursor.X := 0;
1965
    text.cursor.X := 0;