mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 18:19:34 +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
|
{ this is
|
||||||
IFNDEF then UNDEF
|
IFNDEF then UNDEF
|
||||||
or IFDEF then DEFINE
|
or IFDEF then DEFINE
|
||||||
remove define
|
-> remove define
|
||||||
}
|
}
|
||||||
end else begin
|
end else begin
|
||||||
|
|
||||||
|
@ -184,6 +184,14 @@ type
|
|||||||
class function ClassDescription: string; override;
|
class function ClassDescription: string; override;
|
||||||
function Execute(aText: TIDETextConverter): TModalResult; override;
|
function Execute(aText: TIDETextConverter): TModalResult; override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ TFixH2PasMissingIFDEFsInUnit }
|
||||||
|
|
||||||
|
TFixH2PasMissingIFDEFsInUnit = class(TCustomTextConverterTool)
|
||||||
|
public
|
||||||
|
class function ClassDescription: string; override;
|
||||||
|
function Execute(aText: TIDETextConverter): TModalResult; override;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TReduceCompilerDirectivesInUnit }
|
{ TReduceCompilerDirectivesInUnit }
|
||||||
|
|
||||||
@ -1400,6 +1408,7 @@ begin
|
|||||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveSystemTypes);
|
AddNewTextConverterTool(FPostH2PasTools,TRemoveSystemTypes);
|
||||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveRedefinedPointerTypes);
|
AddNewTextConverterTool(FPostH2PasTools,TRemoveRedefinedPointerTypes);
|
||||||
AddNewTextConverterTool(FPostH2PasTools,TRemoveEmptyTypeVarConstSections);
|
AddNewTextConverterTool(FPostH2PasTools,TRemoveEmptyTypeVarConstSections);
|
||||||
|
AddNewTextConverterTool(FPostH2PasTools,TFixH2PasMissingIFDEFsInUnit);
|
||||||
AddNewTextConverterTool(FPostH2PasTools,TReduceCompilerDirectivesInUnit);
|
AddNewTextConverterTool(FPostH2PasTools,TReduceCompilerDirectivesInUnit);
|
||||||
AddNewTextConverterTool(FPostH2PasTools,TReplaceImplicitTypes);
|
AddNewTextConverterTool(FPostH2PasTools,TReplaceImplicitTypes);
|
||||||
AddNewTextConverterTool(FPostH2PasTools,TFixArrayOfParameterType);
|
AddNewTextConverterTool(FPostH2PasTools,TFixArrayOfParameterType);
|
||||||
@ -3187,6 +3196,38 @@ begin
|
|||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
end;
|
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 }
|
{ TReduceCompilerDirectivesInUnit }
|
||||||
|
|
||||||
class function TReduceCompilerDirectivesInUnit.ClassDescription: string;
|
class function TReduceCompilerDirectivesInUnit.ClassDescription: string;
|
||||||
@ -3204,18 +3245,23 @@ var
|
|||||||
Changed: Boolean;
|
Changed: Boolean;
|
||||||
begin
|
begin
|
||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
Tree:=TCompilerDirectivesTree.Create;
|
Tree:=nil;
|
||||||
Code:=TCodeBuffer(aText.CodeBuffer);
|
try
|
||||||
if not Tree.Parse(Code,CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename))
|
Tree:=TCompilerDirectivesTree.Create;
|
||||||
then begin
|
Code:=TCodeBuffer(aText.CodeBuffer);
|
||||||
DebugLn(['TReduceCompilerDirectivesInUnit.Execute failed parsing compiler directives']);
|
if not Tree.Parse(Code,CodeToolBoss.GetNestedCommentsFlagForFile(Code.Filename))
|
||||||
exit;
|
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;
|
end;
|
||||||
repeat
|
|
||||||
Changed:=false;
|
|
||||||
Tree.ReduceCompilerDirectives(Changed);
|
|
||||||
//Tree.WriteDebugReport;
|
|
||||||
until not Changed;
|
|
||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -217,6 +217,7 @@ begin
|
|||||||
TextConverterToolClasses.RegisterClass(TRemoveSystemTypes);
|
TextConverterToolClasses.RegisterClass(TRemoveSystemTypes);
|
||||||
TextConverterToolClasses.RegisterClass(TRemoveRedefinedPointerTypes);
|
TextConverterToolClasses.RegisterClass(TRemoveRedefinedPointerTypes);
|
||||||
TextConverterToolClasses.RegisterClass(TRemoveEmptyTypeVarConstSections);
|
TextConverterToolClasses.RegisterClass(TRemoveEmptyTypeVarConstSections);
|
||||||
|
TextConverterToolClasses.RegisterClass(TFixH2PasMissingIFDEFsInUnit);
|
||||||
TextConverterToolClasses.RegisterClass(TReduceCompilerDirectivesInUnit);
|
TextConverterToolClasses.RegisterClass(TReduceCompilerDirectivesInUnit);
|
||||||
TextConverterToolClasses.RegisterClass(TReplaceImplicitTypes);
|
TextConverterToolClasses.RegisterClass(TReplaceImplicitTypes);
|
||||||
TextConverterToolClasses.RegisterClass(TFixArrayOfParameterType);
|
TextConverterToolClasses.RegisterClass(TFixArrayOfParameterType);
|
||||||
|
@ -1241,7 +1241,7 @@ function TSynCustomCodeFoldBlock.Compare(Block: TSynCustomCodeFoldBlock
|
|||||||
begin
|
begin
|
||||||
if BlockType>Block.BlockType then
|
if BlockType>Block.BlockType then
|
||||||
Result:=1
|
Result:=1
|
||||||
else if BlockType>Block.BlockType then
|
else if BlockType<Block.BlockType then
|
||||||
Result:=-1
|
Result:=-1
|
||||||
else if Level>BLock.Level then
|
else if Level>BLock.Level then
|
||||||
Result:=1
|
Result:=1
|
||||||
|
@ -2255,12 +2255,12 @@ begin
|
|||||||
AddDefault(C, 'Word completion', srkmecWordCompletion, ecWordCompletion);
|
AddDefault(C, 'Word completion', srkmecWordCompletion, ecWordCompletion);
|
||||||
AddDefault(C, 'Complete code', srkmecCompletecode, ecCompleteCode);
|
AddDefault(C, 'Complete code', srkmecCompletecode, ecCompleteCode);
|
||||||
AddDefault(C, 'Identifier completion', dlgEdIdComlet, ecIdentCompletion);
|
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, '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, 'Invert assignment', srkmecInvertAssignment, ecInvertAssignment
|
||||||
);
|
);
|
||||||
AddDefault(C, 'Syntax check', srkmecSyntaxCheck, ecSyntaxCheck);
|
AddDefault(C, 'Syntax check', srkmecSyntaxCheck, ecSyntaxCheck);
|
||||||
|
@ -813,10 +813,10 @@ var
|
|||||||
// refactoring
|
// refactoring
|
||||||
SrcEditMenuCompleteCode: TIDEMenuCommand;
|
SrcEditMenuCompleteCode: TIDEMenuCommand;
|
||||||
SrcEditMenuEncloseSelection: TIDEMenuCommand;
|
SrcEditMenuEncloseSelection: TIDEMenuCommand;
|
||||||
|
SrcEditMenuRenameIdentifier: TIDEMenuCommand;
|
||||||
|
SrcEditMenuFindIdentifierReferences: TIDEMenuCommand;
|
||||||
SrcEditMenuExtractProc: TIDEMenuCommand;
|
SrcEditMenuExtractProc: TIDEMenuCommand;
|
||||||
SrcEditMenuInvertAssignment: TIDEMenuCommand;
|
SrcEditMenuInvertAssignment: TIDEMenuCommand;
|
||||||
SrcEditMenuFindIdentifierReferences: TIDEMenuCommand;
|
|
||||||
SrcEditMenuRenameIdentifier: TIDEMenuCommand;
|
|
||||||
SrcEditMenuMoveEditorLeft: TIDEMenuCommand;
|
SrcEditMenuMoveEditorLeft: TIDEMenuCommand;
|
||||||
SrcEditMenuMoveEditorRight: TIDEMenuCommand;
|
SrcEditMenuMoveEditorRight: TIDEMenuCommand;
|
||||||
SrcEditMenuReadOnly: TIDEMenuCommand;
|
SrcEditMenuReadOnly: TIDEMenuCommand;
|
||||||
@ -953,14 +953,14 @@ begin
|
|||||||
uemCompleteCode);
|
uemCompleteCode);
|
||||||
SrcEditMenuEncloseSelection:=RegisterIDEMenuCommand(AParent,
|
SrcEditMenuEncloseSelection:=RegisterIDEMenuCommand(AParent,
|
||||||
'EncloseSelection',uemEncloseSelection);
|
'EncloseSelection',uemEncloseSelection);
|
||||||
|
SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent,
|
||||||
|
'RenameIdentifier',uemRenameIdentifier);
|
||||||
|
SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent,
|
||||||
|
'FindIdentifierReferences',uemFindIdentifierReferences);
|
||||||
SrcEditMenuExtractProc:=RegisterIDEMenuCommand(AParent,
|
SrcEditMenuExtractProc:=RegisterIDEMenuCommand(AParent,
|
||||||
'ExtractProc',uemExtractProc);
|
'ExtractProc',uemExtractProc);
|
||||||
SrcEditMenuInvertAssignment:=RegisterIDEMenuCommand(AParent,
|
SrcEditMenuInvertAssignment:=RegisterIDEMenuCommand(AParent,
|
||||||
'InvertAssignment',uemInvertAssignment);
|
'InvertAssignment',uemInvertAssignment);
|
||||||
SrcEditMenuFindIdentifierReferences:=RegisterIDEMenuCommand(AParent,
|
|
||||||
'FindIdentifierReferences',uemFindIdentifierReferences);
|
|
||||||
SrcEditMenuRenameIdentifier:=RegisterIDEMenuCommand(AParent,
|
|
||||||
'RenameIdentifier',uemRenameIdentifier);
|
|
||||||
|
|
||||||
// register the Flags section
|
// register the Flags section
|
||||||
SrcEditMenuSectionFlags:=RegisterIDEMenuSection(SourceEditorMenuRoot,
|
SrcEditMenuSectionFlags:=RegisterIDEMenuSection(SourceEditorMenuRoot,
|
||||||
|
Loading…
Reference in New Issue
Block a user