mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 00:09:26 +02:00
synedit: fixed codefolding block comparison
git-svn-id: trunk@11789 -
This commit is contained in:
parent
afa5563498
commit
9708b1003e
@ -727,7 +727,7 @@ begin
|
||||
{ this is
|
||||
IFNDEF then UNDEF
|
||||
or IFDEF then DEFINE
|
||||
remove define
|
||||
-> remove define
|
||||
}
|
||||
end else begin
|
||||
|
||||
|
@ -184,6 +184,14 @@ type
|
||||
class function ClassDescription: string; override;
|
||||
function Execute(aText: TIDETextConverter): TModalResult; override;
|
||||
end;
|
||||
|
||||
{ TFixH2PasMissingIFDEFsInUnit }
|
||||
|
||||
TFixH2PasMissingIFDEFsInUnit = class(TCustomTextConverterTool)
|
||||
public
|
||||
class function ClassDescription: string; override;
|
||||
function Execute(aText: TIDETextConverter): TModalResult; override;
|
||||
end;
|
||||
|
||||
{ TReduceCompilerDirectivesInUnit }
|
||||
|
||||
@ -1400,6 +1408,7 @@ begin
|
||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveSystemTypes);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveRedefinedPointerTypes);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveEmptyTypeVarConstSections);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TFixH2PasMissingIFDEFsInUnit);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TReduceCompilerDirectivesInUnit);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TReplaceImplicitTypes);
|
||||
AddNewTextConverterTool(FPostH2PasTools,TFixArrayOfParameterType);
|
||||
@ -3187,6 +3196,38 @@ begin
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
{ TFixH2PasMissingIFDEFsInUnit }
|
||||
|
||||
class function TFixH2PasMissingIFDEFsInUnit.ClassDescription: string;
|
||||
begin
|
||||
Result:='Adds missing h2pas IFDEFs for function bodies';
|
||||
end;
|
||||
|
||||
function TFixH2PasMissingIFDEFsInUnit.Execute(aText: TIDETextConverter
|
||||
): TModalResult;
|
||||
var
|
||||
Tree: TCompilerDirectivesTree;
|
||||
Code: TCodeBuffer;
|
||||
Changed: Boolean;
|
||||
begin
|
||||
Result:=mrCancel;
|
||||
Tree:=nil;
|
||||
try
|
||||
Tree:=TCompilerDirectivesTree.Create;
|
||||
Code:=TCodeBuffer(aText.CodeBuffer);
|
||||
if not Tree.Parse(Code,CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename))
|
||||
then begin
|
||||
DebugLn(['TFixH2PasMissingIFDEFsInUnit.Execute failed parsing compiler directives']);
|
||||
exit;
|
||||
end;
|
||||
Changed:=false;
|
||||
Tree.FixMissingH2PasDirectives(Changed);
|
||||
finally
|
||||
Tree.Free;
|
||||
end;
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
{ TReduceCompilerDirectivesInUnit }
|
||||
|
||||
class function TReduceCompilerDirectivesInUnit.ClassDescription: string;
|
||||
@ -3204,18 +3245,23 @@ var
|
||||
Changed: Boolean;
|
||||
begin
|
||||
Result:=mrCancel;
|
||||
Tree:=TCompilerDirectivesTree.Create;
|
||||
Code:=TCodeBuffer(aText.CodeBuffer);
|
||||
if not Tree.Parse(Code,CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename))
|
||||
then begin
|
||||
DebugLn(['TReduceCompilerDirectivesInUnit.Execute failed parsing compiler directives']);
|
||||
exit;
|
||||
Tree:=nil;
|
||||
try
|
||||
Tree:=TCompilerDirectivesTree.Create;
|
||||
Code:=TCodeBuffer(aText.CodeBuffer);
|
||||
if not Tree.Parse(Code,CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename))
|
||||
then begin
|
||||
DebugLn(['TReduceCompilerDirectivesInUnit.Execute failed parsing compiler directives']);
|
||||
exit;
|
||||
end;
|
||||
repeat
|
||||
Changed:=false;
|
||||
Tree.ReduceCompilerDirectives(nil,nil,Changed);
|
||||
//Tree.WriteDebugReport;
|
||||
until not Changed;
|
||||
finally
|
||||
Tree.Free;
|
||||
end;
|
||||
repeat
|
||||
Changed:=false;
|
||||
Tree.ReduceCompilerDirectives(Changed);
|
||||
//Tree.WriteDebugReport;
|
||||
until not Changed;
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
|
@ -217,6 +217,7 @@ begin
|
||||
TextConverterToolClasses.RegisterClass(TRemoveSystemTypes);
|
||||
TextConverterToolClasses.RegisterClass(TRemoveRedefinedPointerTypes);
|
||||
TextConverterToolClasses.RegisterClass(TRemoveEmptyTypeVarConstSections);
|
||||
TextConverterToolClasses.RegisterClass(TFixH2PasMissingIFDEFsInUnit);
|
||||
TextConverterToolClasses.RegisterClass(TReduceCompilerDirectivesInUnit);
|
||||
TextConverterToolClasses.RegisterClass(TReplaceImplicitTypes);
|
||||
TextConverterToolClasses.RegisterClass(TFixArrayOfParameterType);
|
||||
|
@ -1241,7 +1241,7 @@ function TSynCustomCodeFoldBlock.Compare(Block: TSynCustomCodeFoldBlock
|
||||
begin
|
||||
if BlockType>Block.BlockType then
|
||||
Result:=1
|
||||
else if BlockType>Block.BlockType then
|
||||
else if BlockType<Block.BlockType then
|
||||
Result:=-1
|
||||
else if Level>BLock.Level then
|
||||
Result:=1
|
||||
|
@ -2255,12 +2255,12 @@ begin
|
||||
AddDefault(C, 'Word completion', srkmecWordCompletion, ecWordCompletion);
|
||||
AddDefault(C, 'Complete code', srkmecCompletecode, ecCompleteCode);
|
||||
AddDefault(C, 'Identifier completion', dlgEdIdComlet, ecIdentCompletion);
|
||||
AddDefault(C, 'Show code context', srkmecShowCodeContext, ecShowCodeContext);
|
||||
AddDefault(C, 'Extract proc', srkmecExtractProc, ecExtractProc);
|
||||
AddDefault(C, 'Find identifier references', srkmecFindIdentifierRefs,
|
||||
ecFindIdentifierRefs);
|
||||
AddDefault(C, 'Rename identifier', srkmecRenameIdentifier, ecRenameIdentifier
|
||||
);
|
||||
AddDefault(C, 'Find identifier references', srkmecFindIdentifierRefs,
|
||||
ecFindIdentifierRefs);
|
||||
AddDefault(C, 'Show code context', srkmecShowCodeContext, ecShowCodeContext);
|
||||
AddDefault(C, 'Extract proc', srkmecExtractProc, ecExtractProc);
|
||||
AddDefault(C, 'Invert assignment', srkmecInvertAssignment, ecInvertAssignment
|
||||
);
|
||||
AddDefault(C, 'Syntax check', srkmecSyntaxCheck, ecSyntaxCheck);
|
||||
|
@ -813,10 +813,10 @@ var
|
||||
// refactoring
|
||||
SrcEditMenuCompleteCode: TIDEMenuCommand;
|
||||
SrcEditMenuEncloseSelection: TIDEMenuCommand;
|
||||
SrcEditMenuRenameIdentifier: TIDEMenuCommand;
|
||||
SrcEditMenuFindIdentifierReferences: TIDEMenuCommand;
|
||||
SrcEditMenuExtractProc: TIDEMenuCommand;
|
||||
SrcEditMenuInvertAssignment: TIDEMenuCommand;
|
||||
SrcEditMenuFindIdentifierReferences: TIDEMenuCommand;
|
||||
SrcEditMenuRenameIdentifier: TIDEMenuCommand;
|
||||
SrcEditMenuMoveEditorLeft: TIDEMenuCommand;
|
||||
SrcEditMenuMoveEditorRight: TIDEMenuCommand;
|
||||
SrcEditMenuReadOnly: TIDEMenuCommand;
|
||||
@ -953,14 +953,14 @@ begin
|
||||
uemCompleteCode);
|
||||
SrcEditMenuEncloseSelection:=RegisterIDEMenuCommand(AParent,
|
||||
'EncloseSelection',uemEncloseSelection);
|
||||
SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent,
|
||||
'RenameIdentifier',uemRenameIdentifier);
|
||||
SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent,
|
||||
'FindIdentifierReferences',uemFindIdentifierReferences);
|
||||
SrcEditMenuExtractProc:=RegisterIDEMenuCommand(AParent,
|
||||
'ExtractProc',uemExtractProc);
|
||||
SrcEditMenuInvertAssignment:=RegisterIDEMenuCommand(AParent,
|
||||
'InvertAssignment',uemInvertAssignment);
|
||||
SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent,
|
||||
'FindIdentifierReferences',uemFindIdentifierReferences);
|
||||
SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent,
|
||||
'RenameIdentifier',uemRenameIdentifier);
|
||||
|
||||
// register the Flags section
|
||||
SrcEditMenuSectionFlags:=RegisterIDEMenuSection(SourceEditorMenuRoot,
|
||||
|
Loading…
Reference in New Issue
Block a user