From: Erik B. <eb...@us...> - 2006-02-02 20:57:47
|
Update of /cvsroot/gexperts/gexperts/unstable/Src/EditorExperts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13358/Src/EditorExperts Modified Files: GX_eFindDelimiter.pas Log Message: Support asm keyword as a beginning token Support "class of TFoo;" declarations Support jumping form end to class, record, asm Index: GX_eFindDelimiter.pas =================================================================== RCS file: /cvsroot/gexperts/gexperts/unstable/Src/EditorExperts/GX_eFindDelimiter.pas,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- GX_eFindDelimiter.pas 22 Oct 2005 18:41:27 -0000 1.25 +++ GX_eFindDelimiter.pas 2 Feb 2006 20:57:39 -0000 1.26 @@ -60,7 +60,7 @@ ' This expert enables you to quickly '; SDelimiterHelpSuffix = ' a matching beginning/ending delimiter for the following Delphi '+ - 'tokens: begin, try, case, repeat, for, with, while, then, do, if, else, class, record, '+ + 'tokens: begin, try, case, repeat, for, with, while, asm, do, if, then, else, class, record, '+ 'array, interface, implementation, uses, private, protected, public, published, until, '+ 'end, try, finally, except, (/), and [/], .' +sLineBreak+ ' It also supports the following C++ tokens: {/}, (/), and [/]'; @@ -156,7 +156,7 @@ Parser.RunIndex := Parser.PositionToIndex(SPos) + Offsets[i]; StartToken := Parser.RunID; case Parser.RunID of - tkBegin, tkCase: + tkBegin, tkCase, tkAsm: begin EndTokens := [tkEnd]; Backward := False; @@ -223,7 +223,7 @@ tkClass, tkRecord: begin Parser.NextNonJunk; - if Parser.RunID = tkSemicolon then // Forward declaration + if Parser.RunID in [tkSemicolon, tkOf] then // Forward declaration or class of Foo; EndTokens := [tkSemicolon] else EndTokens := [tkEnd]; @@ -279,9 +279,9 @@ tkEnd: begin if ThreeDelimiters then - EndTokens := [tkBegin, tkCase, tkFinally, tkExcept] + EndTokens := [tkBegin, tkCase, tkRecord, tkClass, tkAsm, tkFinally, tkExcept] else - EndTokens := [tkBegin, tkCase, tkTry]; + EndTokens := [tkBegin, tkCase, tkRecord, tkClass, tkAsm, tkTry]; Backward := True; Break; @@ -333,7 +333,7 @@ while (c > 0) and (Parser.RunIndex > 0) do begin - Parser.Previous; + Parser.PreviousNonJunk; if (Parser.RunID = StartToken) or (Parser.RunID in ExtraStartTokens) then Inc(c); if Parser.RunID in EndTokens then @@ -410,9 +410,9 @@ begin Parser.NextNonJunk; case StartToken of - tkBegin, tkCase, tkExcept, tkFinally, tkWith, tkWhile, tkThen, tkDo, tkIf, tkElse, tkFor: + tkBegin, tkCase, tkExcept, tkFinally, tkWith, tkWhile, tkThen, tkDo, tkIf, tkElse, tkFor, tkRecord: begin - if Parser.RunID in [tkBegin, tkTry, tkCase] then + if Parser.RunID in [tkBegin, tkTry, tkCase, tkAsm] then Inc(c); end; @@ -423,7 +423,7 @@ if Parser.RunID = StartToken then Inc(c); end - else if Parser.RunID in [tkBegin, tkTry, tkCase] then + else if Parser.RunID in [tkBegin, tkTry, tkCase, tkAsm] then Inc(c); end; |