jcf: sync with r728

git-svn-id: trunk@17836 -
This commit is contained in:
paul 2008-12-15 02:59:23 +00:00
parent 590ebab989
commit 351862c47d
22 changed files with 243 additions and 99 deletions

1
.gitattributes vendored
View File

@ -495,6 +495,7 @@ components/jcf2/Process/Returns/ReturnBefore.pas svneol=native#text/pascal
components/jcf2/Process/Returns/ReturnChars.pas svneol=native#text/pascal
components/jcf2/Process/Returns/ReturnsAfterFinalEnd.pas svneol=native#text/pascal
components/jcf2/Process/Spacing/MaxSpaces.pas svneol=native#text/pascal
components/jcf2/Process/Spacing/MoveSpaceToBeforeColon.pas svneol=native#text/pascal
components/jcf2/Process/Spacing/NoSpaceAfter.pas svneol=native#text/pascal
components/jcf2/Process/Spacing/NoSpaceBefore.pas svneol=native#text/pascal
components/jcf2/Process/Spacing/RemoveSpaceAtLineEnd.pas svneol=native#text/pascal

View File

@ -155,7 +155,8 @@ uses
CommandLineReturnCode in '..\CommandLineReturnCode.pas',
CommandLineConstants in '..\CommandLineConstants.pas',
StatusMessageReceiver in '..\StatusMessageReceiver.pas',
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas';
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas',
MoveSpaceToBeforeColon in '..\..\Process\Spacing\MoveSpaceToBeforeColon.pas';
var
feReturnCode: TJcfCommandLineReturnCode;

View File

@ -158,7 +158,8 @@ uses
JcfUnicodeFiles in '..\..\Utils\JcfUnicodeFiles.pas',
CommandLineReturnCode in '..\CommandLineReturnCode.pas',
CommandLineConstants in '..\CommandLineConstants.pas',
StatusMessageReceiver in '..\StatusMessageReceiver.pas';
StatusMessageReceiver in '..\StatusMessageReceiver.pas',
MoveSpaceToBeforeColon in '..\..\Process\Spacing\MoveSpaceToBeforeColon.pas';
var
feReturnCode: TJcfCommandLineReturnCode;

View File

@ -6,7 +6,7 @@
<General>
<MainUnit Value="0"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="4"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
@ -31,12 +31,12 @@
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="134">
<Units Count="135">
<Unit0>
<Filename Value="JCF.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="42" Y="50"/>
<TopLine Value="33"/>
<CursorPos X="78" Y="162"/>
<TopLine Value="137"/>
<EditorIndex Value="0"/>
<UsageCount Value="89"/>
<Bookmarks Count="1">
@ -122,7 +122,7 @@
<UnitName Value="JCFMiscFunctions"/>
<CursorPos X="50" Y="241"/>
<TopLine Value="222"/>
<EditorIndex Value="6"/>
<EditorIndex Value="9"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</Unit10>
@ -132,7 +132,7 @@
<UnitName Value="BuildTokenList"/>
<CursorPos X="26" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="7"/>
<EditorIndex Value="10"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</Unit11>
@ -177,7 +177,7 @@
<UnitName Value="SettingsStream"/>
<CursorPos X="46" Y="103"/>
<TopLine Value="103"/>
<EditorIndex Value="3"/>
<EditorIndex Value="6"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</Unit16>
@ -263,7 +263,7 @@
<UnitName Value="fShowParseTree"/>
<CursorPos X="17" Y="94"/>
<TopLine Value="77"/>
<EditorIndex Value="8"/>
<EditorIndex Value="11"/>
<UsageCount Value="35"/>
<Loaded Value="True"/>
</Unit26>
@ -281,7 +281,7 @@
<UnitName Value="FormatFlags"/>
<CursorPos X="43" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<EditorIndex Value="5"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit28>
@ -479,7 +479,7 @@
<UnitName Value="fJcfErrorDisplay"/>
<CursorPos X="17" Y="62"/>
<TopLine Value="38"/>
<EditorIndex Value="1"/>
<EditorIndex Value="4"/>
<UsageCount Value="44"/>
<Loaded Value="True"/>
</Unit52>
@ -839,12 +839,11 @@
<Filename Value="..\..\Process\AllProcesses.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="AllProcesses"/>
<CursorPos X="13" Y="156"/>
<TopLine Value="139"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="34"/>
<Bookmarks Count="1">
<Item0 X="13" Y="156" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit97>
<Unit98>
<Filename Value="..\..\Process\Obfuscate\RemoveBlankLine.pas"/>
@ -874,9 +873,11 @@
<Filename Value="..\..\Process\VisitStripEmptySpace.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="VisitStripEmptySpace"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="46"/>
<TopLine Value="28"/>
<EditorIndex Value="3"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit101>
<Unit102>
<Filename Value="..\..\Process\Returns\RemoveBlankLinesAfterProcHeader.pas"/>
@ -914,9 +915,9 @@
<Filename Value="..\..\Utils\IntList.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="IntList"/>
<CursorPos X="34" Y="137"/>
<CursorPos X="37" Y="133"/>
<TopLine Value="115"/>
<EditorIndex Value="4"/>
<EditorIndex Value="7"/>
<UsageCount Value="34"/>
<Bookmarks Count="1">
<Item0 X="58" Y="90" ID="1"/>
@ -1105,7 +1106,7 @@
<UnitName Value="SetAsm"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="5"/>
<EditorIndex Value="8"/>
<UsageCount Value="34"/>
<Loaded Value="True"/>
</Unit129>
@ -1137,131 +1138,141 @@
<Filename Value="..\..\Parse\UI\fShowParseTree.lrs"/>
<CursorPos X="17" Y="3"/>
<TopLine Value="1"/>
<EditorIndex Value="9"/>
<EditorIndex Value="12"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit133>
<Unit134>
<Filename Value="..\..\Process\Spacing\MoveSpaceToBeforeColon.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="MoveSpaceToBeforeColon"/>
<CursorPos X="28" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit134>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="89" Column="39" TopLine="69"/>
<Caret Line="36" Column="1" TopLine="35"/>
</Position1>
<Position2>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="329" Column="5" TopLine="297"/>
<Filename Value="..\..\Parse\UI\fShowParseTree.lrs"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position2>
<Position3>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="36" Column="1" TopLine="35"/>
<Caret Line="331" Column="5" TopLine="297"/>
</Position3>
<Position4>
<Filename Value="..\..\Parse\UI\fShowParseTree.lrs"/>
<Caret Line="1" Column="1" TopLine="1"/>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="89" Column="14" TopLine="67"/>
</Position4>
<Position5>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="331" Column="5" TopLine="297"/>
<Caret Line="94" Column="1" TopLine="80"/>
</Position5>
<Position6>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="89" Column="14" TopLine="67"/>
</Position6>
<Position7>
<Filename Value="..\..\Parse\UI\fShowParseTree.pas"/>
<Caret Line="94" Column="1" TopLine="80"/>
</Position7>
<Position8>
<Filename Value="..\..\Process\FormatFlags.pas"/>
<Caret Line="78" Column="11" TopLine="61"/>
</Position6>
<Position7>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="252" Column="46" TopLine="222"/>
</Position7>
<Position8>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="328" Column="18" TopLine="311"/>
</Position8>
<Position9>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="252" Column="46" TopLine="222"/>
<Caret Line="239" Column="26" TopLine="222"/>
</Position9>
<Position10>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="328" Column="18" TopLine="311"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position10>
<Position11>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="239" Column="26" TopLine="222"/>
</Position11>
<Position12>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position12>
<Position13>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="239" Column="26" TopLine="222"/>
</Position13>
<Position14>
<Filename Value="..\..\Parse\BuildTokenList.pas"/>
<Caret Line="114" Column="3" TopLine="97"/>
</Position12>
<Position13>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="165" Column="53" TopLine="140"/>
</Position13>
<Position14>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="416" Column="42" TopLine="399"/>
</Position14>
<Position15>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="165" Column="53" TopLine="140"/>
<Caret Line="159" Column="3" TopLine="142"/>
</Position15>
<Position16>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="416" Column="42" TopLine="399"/>
<Caret Line="416" Column="10" TopLine="399"/>
</Position16>
<Position17>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="159" Column="3" TopLine="142"/>
<Caret Line="115" Column="10" TopLine="97"/>
</Position17>
<Position18>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="416" Column="10" TopLine="399"/>
<Caret Line="375" Column="28" TopLine="374"/>
</Position18>
<Position19>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="115" Column="10" TopLine="97"/>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position19>
<Position20>
<Filename Value="..\..\Settings\Streams\SettingsStream.pas"/>
<Caret Line="375" Column="28" TopLine="374"/>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="103" Column="24" TopLine="86"/>
</Position20>
<Position21>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
<Caret Line="119" Column="13" TopLine="102"/>
</Position21>
<Position22>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="103" Column="24" TopLine="86"/>
<Filename Value="..\..\Settings\SetAsm.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="119" Column="13" TopLine="102"/>
</Position23>
<Position24>
<Filename Value="..\..\Settings\SetAsm.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position24>
<Position25>
<Filename Value="..\..\Settings\SetAsm.pas"/>
<Caret Line="37" Column="35" TopLine="16"/>
</Position25>
<Position26>
</Position23>
<Position24>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="328" Column="22" TopLine="311"/>
</Position26>
<Position27>
</Position24>
<Position25>
<Filename Value="..\..\Utils\JcfMiscFunctions.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position25>
<Position26>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="151" Column="51" TopLine="151"/>
</Position26>
<Position27>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="111" Column="24" TopLine="94"/>
</Position27>
<Position28>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="151" Column="51" TopLine="151"/>
<Caret Line="127" Column="13" TopLine="110"/>
</Position28>
<Position29>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="111" Column="24" TopLine="94"/>
<Filename Value="..\..\Process\VisitStripEmptySpace.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position29>
<Position30>
<Filename Value="..\..\Utils\IntList.pas"/>
<Caret Line="127" Column="13" TopLine="110"/>
<Filename Value="..\..\Process\AllProcesses.pas"/>
<Caret Line="156" Column="13" TopLine="139"/>
</Position30>
</JumpHistory>
</ProjectOptions>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<JediCodeFormatSettings>
<WriteVersion> 2.41 </WriteVersion>
<WriteVersion> 2.42 </WriteVersion>
<WriteDateTime> 39387.7118126273 </WriteDateTime>
<Description> JEDI Code Format Settings </Description>
<Obfuscate>

View File

@ -179,7 +179,8 @@ uses
AsmKeywords in '..\..\Parse\AsmKeywords.pas',
JcfUnicode in '..\..\Utils\JcfUnicode.pas',
JcfUnicodeFiles in '..\..\Utils\JcfUnicodeFiles.pas',
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas';
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas',
MoveSpaceToBeforeColon in '..\..\Process\Spacing\MoveSpaceToBeforeColon.pas';
{$R *.res}

View File

@ -162,13 +162,13 @@
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription">JEDI Code Format</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.41.0.0</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.42.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.41</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.42</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>

View File

@ -179,7 +179,8 @@ uses
AsmKeywords in '..\..\Parse\AsmKeywords.pas',
JcfUnicode in '..\..\Utils\JcfUnicode.pas',
JcfUnicodeFiles in '..\..\Utils\JcfUnicodeFiles.pas',
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas';
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas',
MoveSpaceToBeforeColon in '..\..\Process\Spacing\MoveSpaceToBeforeColon.pas';
{$R *.res}

View File

@ -162,13 +162,13 @@
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription">JEDI Code Format</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.41.0.0</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.42.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.41</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.42</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>

View File

@ -162,13 +162,13 @@
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription">JCF Notepad</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.41.0.0</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.42.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.41</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.42</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>

View File

@ -178,7 +178,8 @@ uses
AsmKeywords in '..\..\Parse\AsmKeywords.pas',
JcfUnicode in '..\..\Utils\JcfUnicode.pas',
JcfUnicodeFiles in '..\..\Utils\JcfUnicodeFiles.pas',
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas';
JcfStringUtils in '..\..\Utils\JcfStringUtils.pas',
MoveSpaceToBeforeColon in '..\..\Process\Spacing\MoveSpaceToBeforeColon.pas';
{$R *.res}

View File

@ -162,13 +162,13 @@
<VersionInfoKeys>
<VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
<VersionInfoKeys Name="FileDescription">JCF Notepad</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.41.0.0</VersionInfoKeys>
<VersionInfoKeys Name="FileVersion">2.42.0.0</VersionInfoKeys>
<VersionInfoKeys Name="InternalName"></VersionInfoKeys>
<VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
<VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
<VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
<VersionInfoKeys Name="ProductName"></VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.41</VersionInfoKeys>
<VersionInfoKeys Name="ProductVersion">2.42</VersionInfoKeys>
<VersionInfoKeys Name="Comments"></VersionInfoKeys>
</VersionInfoKeys>
</Delphi.Personality>

View File

@ -106,7 +106,6 @@ function InFormalParams(const pt: TSourceToken): boolean;
function IsActualParamOpenBracket(const pt: TSourceToken): boolean;
function IsFormalParamOpenBracket(const pt: TSourceToken): boolean;
function IsLineBreaker(const pcToken: TSourceToken): boolean;
function IsMultiLineComment(const pcToken: TSourceToken): boolean;
function IsSingleLineComment(const pcToken: TSourceToken): boolean;
@ -579,12 +578,6 @@ begin
end;
end;
function IsLineBreaker(const pcToken: TSourceToken): boolean;
begin
Result := (pcToken.TokenType = ttReturn) or IsMultiLineComment(pcToken) or
(pcToken.TokenType = ttConditionalCompilationRemoved);
end;
{ count the number of identifiers in the var decl
e.g. "var i,j,k,l: integer" has 4 vars
}

View File

@ -101,6 +101,7 @@ uses
TabToSpace, SpaceToTab, MaxSpaces,
NoSpaceAfter, NoSpaceBefore, SingleSpaceBefore, SingleSpaceAfter,
SpaceBeforeColon, RemoveSpaceAtLineEnd, VisitStripEmptySpace,
MoveSpaceToBeforeColon,
{indent}
VisitSetNesting, Indenter, LongLineBreaker,
{ stats }
@ -350,6 +351,8 @@ begin
ApplyVisitorType(TAlignComment, [TVisitSetXY]);
ApplyVisitorType(TIndentAsmParam, [TVisitSetXY]);
ApplyVisitorType(TMoveSpaceToBeforeColon);
end;
procedure TAllProcesses.OnceOffs;

View File

@ -49,7 +49,7 @@ type
{ these are called when visiting interior nodes before and after thier children
Must return true if the visited node is deleted, or if nodes are inserted before it
ie if the cuurent node's index is not correct and the same after the visit}
ie if the curent node's index is not correct and the same after the visit}
procedure PreVisitParseTreeNode(const pcNode: TObject); virtual;
procedure PostVisitParseTreeNode(const pcNode: TObject); virtual;

View File

@ -69,6 +69,11 @@ uses
SourceToken, FormatFlags, JcfSettings, SetReturns,
TokenUtils, JcfMiscFunctions, Tokens, ParseTreeNode, ParseTreeNodeType;
function IsLineBreaker(const pcToken: TSourceToken): boolean;
begin
Result := (pcToken.TokenType in [ttReturn, ttConditionalCompilationRemoved]) or
IsMultiLineComment(pcToken);
end;
function EndsFunctionReturnType(const pt: TSourceToken): boolean;
var
@ -218,7 +223,9 @@ begin
if piSpacesToEnd < 0 then
begin
lsMessage := 'Spaces to end is ' + IntToStr(piSpacesToEnd) +
' on ' + pcNext.Describe + ' at ' + pcNext.DescribePosition;
' on ' + pcNext.Describe + ' at ' + pcNext.DescribePosition +
' line is ' + NativeLineBreak + pcNext.SourceLine;
Raise Exception.Create(lsMessage);
end;
@ -568,7 +575,7 @@ begin
exit;
{ line can start with a return or with a multiline comment }
if not IsLineBreaker(lcSourceToken) then
if not IsLineBreaker(lcSourceToken) or (lcSourceToken.TokenType = ttConditionalCompilationRemoved) then
exit;
// read until the next return
@ -597,6 +604,14 @@ begin
lcNext := lcNext.NextToken;
end;
// check for trailing conditional compilation removed
while (lcNext <> nil) and (not IsLineBreaker(lcNext) or (lcNext.TokenType = ttConditionalCompilationRemoved)) do
begin
liTotalWidth := liTotalWidth + Length(lcNext.SourceCode);
lcNext := lcNext.NextToken;
end;
// EOF or blank line means no linebreaking to do
if (lcNext = nil) or (lcNext = lcSourceToken) then
exit;

View File

@ -0,0 +1,97 @@
unit MoveSpaceToBeforeColon;
{(*}
(*------------------------------------------------------------------------------
Delphi Code formatter MoveSpaceToBeforeColon code
The Original Code is SingleSpaceAfter, released December 2008.
The Initial Developer of the Original Code is Anthony Steele.
Portions created by Anthony Steele are Copyright (C) 1999-2008 Anthony Steele.
All Rights Reserved.
Contributor(s): Anthony Steele.
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"). you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied.
See the License for the specific language governing rights and limitations
under the License.
Alternatively, the contents of this file may be used under the terms of
the GNU General Public License Version 2 or later (the "GPL")
See http://www.gnu.org/licenses/gpl.html
------------------------------------------------------------------------------*)
{*)}
{$I JcfGlobal.inc}
interface
{ AFS 14 December 2009
Process to move spaces to after colon
SF Bug request #2173842
}
uses SwitchableVisitor;
type
TMoveSpaceToBeforeColon = class(TSwitchableVisitor)
private
protected
function EnabledVisitSourceToken(const pcNode: TObject): boolean; override;
public
constructor Create; override;
function IsIncludedInSettings: boolean; override;
end;
implementation
uses
FormatFlags, SourceToken, Tokens, TokenUtils, JcfSettings;
constructor TMoveSpaceToBeforeColon.Create;
begin
inherited;
FormatFlags := FormatFlags + [eAddSpace, eRemoveSpace, eRemoveReturn];
end;
function TMoveSpaceToBeforeColon.EnabledVisitSourceToken(const pcNode: TObject): boolean;
var
lcSourceToken: TSourceToken;
lcNext: TSourceToken;
lcNew: TSourceToken;
begin
Result := False;
lcSourceToken := TSourceToken(pcNode);
if lcSourceToken.TokenType = ttColon then
begin
lcNext := lcSourceToken.NextToken;
if (lcNext <> nil) and (lcNext.TokenType = ttWhiteSpace) and
(Length(lcNext.SourceCode) > 0) then
begin
// put the space before
lcNew := TSourceToken.Create;
lcNew.TokenType := ttWhiteSpace;
lcNew.SourceCode := lcNext.SourceCode;
InsertTokenBefore(lcSourceToken, lcNew);
BlankToken(lcNext);
Result := True;
end;
end;
end;
function TMoveSpaceToBeforeColon.IsIncludedInSettings: boolean;
begin
Result := FormatSettings.Spaces.MoveSpaceToBeforeColon;
end;
end.

View File

@ -75,6 +75,7 @@ const
const
SOURCE_FILE_FILTERS =
'All source|*.pas; *.dpr; *.dpk; *.pp; *.lpr; *.lpk; *.txt|' +
'Delphi source (*.pas, *.dpr, *.dpk)|*.pas; *.dpr; *.dpk|' +
'Lazarus source (*.pas, *.pp, *.lpr, *.lpk)|*.pas; *.pp; *.lpr; *.lpk|' +
'Pascal Source (*.pas, *.pp)|*.pas; *.pp|' +

View File

@ -113,7 +113,7 @@ implementation
uses
{ delphi }
{$ifndef fpc}Windows, {$endif}SysUtils, Dialogs, Controls, Forms,
{$ifndef fpc}Windows, {$endif} SysUtils, Dialogs, Controls, Forms,
{ local }
JcfStringUtils,
FileUtils, JcfMiscFunctions, JCFLog,

View File

@ -65,6 +65,7 @@ type
fbSpaceAfterOpenBrackets: boolean;
fbSpaceBeforeCloseBrackets: boolean;
fbMoveSpaceToBeforeColon: boolean;
feSpaceForOperator: TTriOptionStyle;
@ -119,6 +120,7 @@ type
property SpaceAfterOpenBrackets: boolean read fbSpaceAfterOpenBrackets write fbSpaceAfterOpenBrackets;
property SpaceBeforeCloseBrackets: boolean read fbSpaceBeforeCloseBrackets write fbSpaceBeforeCloseBrackets;
property MoveSpaceToBeforeColon: boolean read fbMoveSpaceToBeforeColon write fbMoveSpaceToBeforeColon;
end;
@ -155,6 +157,7 @@ const
SET_SPACE_AFTER_OPEN_BRACKETS = 'SpaceAfterOpenBrackets';
SET_SPACE_BEFORE_CLOSE_BRACKETS = 'SpaceBeforeCloseBrackets';
SET_MOVE_SPACE_TO_BEFORE_COLON = 'MoveSpaceToBeforeColon';
constructor TSetSpaces.Create;
@ -199,6 +202,7 @@ begin
fbSpaceAfterOpenBrackets := pcStream.Read(SET_SPACE_AFTER_OPEN_BRACKETS, False);
fbSpaceBeforeCloseBrackets := pcStream.Read(SET_SPACE_BEFORE_CLOSE_BRACKETS, False);
fbMoveSpaceToBeforeColon := pcStream.Read(SET_MOVE_SPACE_TO_BEFORE_COLON, False);
end;
procedure TSetSpaces.WriteToStream(const pcOut: TSettingsOutput);
@ -236,6 +240,8 @@ begin
pcOut.Write(SET_SPACE_AFTER_OPEN_BRACKETS, fbSpaceAfterOpenBrackets);
pcOut.Write(SET_SPACE_BEFORE_CLOSE_BRACKETS, fbSpaceBeforeCloseBrackets);
pcOut.Write(SET_MOVE_SPACE_TO_BEFORE_COLON, fbMoveSpaceToBeforeColon);
end;

View File

@ -361,4 +361,12 @@ inherited fClarifySpaces: TfClarifySpaces
TabOrder = 1
end
end
object cbMoveSpacesToBeforeColon: TCheckBox
Left = 260
Top = 270
Width = 202
Height = 17
Caption = 'Move spaces to before colon'
TabOrder = 9
end
end

View File

@ -78,6 +78,7 @@ type
lblSpaceBeforeColonConst: TLabel;
eSpacesBeforeColonRecordField: TJvValidateEdit;
lblSpacesBeforeColonRecordField: TLabel;
cbMoveSpacesToBeforeColon: TCheckBox;
procedure cbTabsToSpacesClick(Sender: TObject);
procedure cbSpacesToTabsClick(Sender: TObject);
procedure cbMaxSpacesClick(Sender: TObject);
@ -144,6 +145,8 @@ begin
cbInsertSpaceAfterOpen.Checked := SpaceAfterOpenBrackets;
CheckBoxInsertSpaceBeforeEnd.Checked := SpaceBeforeCloseBrackets;
cbMoveSpacesToBeforeColon.Checked := MoveSpaceToBeforeColon;
end;
cbTabsToSpacesClick(nil);
@ -190,6 +193,7 @@ begin
SpaceAfterOpenBrackets := cbInsertSpaceAfterOpen.Checked;
SpaceBeforeCloseBrackets := CheckBoxInsertSpaceBeforeEnd.Checked;
MoveSpaceToBeforeColon := cbMoveSpacesToBeforeColon.Checked;
end;
end;