Reduce SynEdit dependencies from units. Reorder uses sections to see dependencies better.

git-svn-id: trunk@53727 -
This commit is contained in:
juha 2016-12-20 00:09:10 +00:00
parent 8f632960a6
commit 9c405911fd
26 changed files with 489 additions and 361 deletions

1
.gitattributes vendored
View File

@ -1878,6 +1878,7 @@ components/ideintf/docs/lazideintf.xml svneol=native#text/plain
components/ideintf/docs/objectinspector.xml svneol=native#text/plain components/ideintf/docs/objectinspector.xml svneol=native#text/plain
components/ideintf/docs/packageintf.xml svneol=native#text/plain components/ideintf/docs/packageintf.xml svneol=native#text/plain
components/ideintf/docs/projectintf.xml svneol=native#text/plain components/ideintf/docs/projectintf.xml svneol=native#text/plain
components/ideintf/editorsyntaxhighlighterdef.pas svneol=native#text/pascal
components/ideintf/fieldseditor.lfm svneol=native#text/plain components/ideintf/fieldseditor.lfm svneol=native#text/plain
components/ideintf/fieldseditor.pas svneol=native#text/pascal components/ideintf/fieldseditor.pas svneol=native#text/pascal
components/ideintf/fieldslist.lfm svneol=native#text/plain components/ideintf/fieldslist.lfm svneol=native#text/plain

View File

@ -0,0 +1,64 @@
unit EditorSyntaxHighlighterDef;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
type
TLazSyntaxHighlighter =
( lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML,
lshCPP, lshPerl, lshJava, lshBash, lshPython, lshPHP, lshSQL, lshJScript,
lshDiff, lshBat, lshIni, lshPo, lshPike
);
const
LazSyntaxHighlighterNames: array[TLazSyntaxHighlighter] of String =
( 'None',
'Text',
'FreePascal',
'Delphi',
'LFM',
'XML',
'HTML',
'C++',
'Perl',
'Java',
'Bash',
'Python',
'PHP',
'SQL',
'JScript',
'Diff',
'Bat',
'Ini',
'PO',
'Pike'
);
function GetSyntaxHighlighterCaption(h: TLazSyntaxHighlighter): string;
function StrToLazSyntaxHighlighter(const s: String): TLazSyntaxHighlighter;
implementation
function GetSyntaxHighlighterCaption(h: TLazSyntaxHighlighter): string;
begin
if h=lshFreePascal then
Result:='Free Pascal'
else
Result:=LazSyntaxHighlighterNames[h];
end;
function StrToLazSyntaxHighlighter(const s: String): TLazSyntaxHighlighter;
begin
for Result := Low(TLazSyntaxHighlighter) to High(TLazSyntaxHighlighter) do
if (CompareText(s, LazSyntaxHighlighterNames[Result]) = 0) then
exit;
Result := lshFreePascal;
end;
end.

View File

@ -20,7 +20,7 @@
<Description Value="IDEIntf - the interface units for the Lazarus IDE"/> <Description Value="IDEIntf - the interface units for the Lazarus IDE"/>
<License Value="Modified LPGL2"/> <License Value="Modified LPGL2"/>
<Version Major="1"/> <Version Major="1"/>
<Files Count="80"> <Files Count="81">
<Item1> <Item1>
<Filename Value="actionseditor.pas"/> <Filename Value="actionseditor.pas"/>
<UnitName Value="ActionsEditor"/> <UnitName Value="ActionsEditor"/>
@ -90,258 +90,262 @@
<UnitName Value="DBPropEdits"/> <UnitName Value="DBPropEdits"/>
</Item17> </Item17>
<Item18> <Item18>
<Filename Value="fieldseditor.pas"/> <Filename Value="editorsyntaxhighlighterdef.pas"/>
<UnitName Value="fieldseditor"/> <UnitName Value="EditorSyntaxHighlighterDef"/>
</Item18> </Item18>
<Item19> <Item19>
<Filename Value="fieldseditor.lfm"/> <Filename Value="fieldseditor.pas"/>
<Type Value="LFM"/> <UnitName Value="fieldseditor"/>
</Item19> </Item19>
<Item20> <Item20>
<Filename Value="fieldslist.pas"/> <Filename Value="fieldseditor.lfm"/>
<UnitName Value="fieldslist"/> <Type Value="LFM"/>
</Item20> </Item20>
<Item21> <Item21>
<Filename Value="fieldslist.lfm"/> <Filename Value="fieldslist.pas"/>
<Type Value="LFM"/> <UnitName Value="fieldslist"/>
</Item21> </Item21>
<Item22> <Item22>
<Filename Value="filefilterpropeditor.pas"/> <Filename Value="fieldslist.lfm"/>
<UnitName Value="FileFilterPropEditor"/> <Type Value="LFM"/>
</Item22> </Item22>
<Item23> <Item23>
<Filename Value="filefilterpropeditor.lfm"/> <Filename Value="filefilterpropeditor.pas"/>
<Type Value="LFM"/> <UnitName Value="FileFilterPropEditor"/>
</Item23> </Item23>
<Item24> <Item24>
<Filename Value="formeditingintf.pas"/> <Filename Value="filefilterpropeditor.lfm"/>
<UnitName Value="FormEditingIntf"/> <Type Value="LFM"/>
</Item24> </Item24>
<Item25> <Item25>
<Filename Value="frmselectprops.pas"/> <Filename Value="formeditingintf.pas"/>
<UnitName Value="frmSelectProps"/> <UnitName Value="FormEditingIntf"/>
</Item25> </Item25>
<Item26> <Item26>
<Filename Value="frmselectprops.lfm"/> <Filename Value="frmselectprops.pas"/>
<Type Value="LFM"/> <UnitName Value="frmSelectProps"/>
</Item26> </Item26>
<Item27> <Item27>
<Filename Value="graphicpropedit.pas"/> <Filename Value="frmselectprops.lfm"/>
<UnitName Value="GraphicPropEdit"/> <Type Value="LFM"/>
</Item27> </Item27>
<Item28> <Item28>
<Filename Value="graphicpropedit.lfm"/> <Filename Value="graphicpropedit.pas"/>
<Type Value="LFM"/> <UnitName Value="GraphicPropEdit"/>
</Item28> </Item28>
<Item29> <Item29>
<Filename Value="graphpropedits.pas"/> <Filename Value="graphicpropedit.lfm"/>
<UnitName Value="GraphPropEdits"/> <Type Value="LFM"/>
</Item29> </Item29>
<Item30> <Item30>
<Filename Value="headercontrolpropedit.pp"/> <Filename Value="graphpropedits.pas"/>
<UnitName Value="HeaderControlPropEdit"/> <UnitName Value="GraphPropEdits"/>
</Item30> </Item30>
<Item31> <Item31>
<Filename Value="helpfpdoc.pas"/> <Filename Value="headercontrolpropedit.pp"/>
<UnitName Value="HelpFPDoc"/> <UnitName Value="HeaderControlPropEdit"/>
</Item31> </Item31>
<Item32> <Item32>
<Filename Value="idecommands.pas"/> <Filename Value="helpfpdoc.pas"/>
<UnitName Value="IDECommands"/> <UnitName Value="HelpFPDoc"/>
</Item32> </Item32>
<Item33> <Item33>
<Filename Value="idedialogs.pas"/> <Filename Value="idecommands.pas"/>
<UnitName Value="IDEDialogs"/> <UnitName Value="IDECommands"/>
</Item33> </Item33>
<Item34> <Item34>
<Filename Value="ideexterntoolintf.pas"/> <Filename Value="idedialogs.pas"/>
<UnitName Value="IDEExternToolIntf"/> <UnitName Value="IDEDialogs"/>
</Item34> </Item34>
<Item35> <Item35>
<Filename Value="idehelpintf.pas"/> <Filename Value="ideexterntoolintf.pas"/>
<UnitName Value="IDEHelpIntf"/> <UnitName Value="IDEExternToolIntf"/>
</Item35> </Item35>
<Item36> <Item36>
<Filename Value="ideimagesintf.pas"/> <Filename Value="idehelpintf.pas"/>
<UnitName Value="IDEImagesIntf"/> <UnitName Value="IDEHelpIntf"/>
</Item36> </Item36>
<Item37> <Item37>
<Filename Value="idemsgintf.pas"/> <Filename Value="ideimagesintf.pas"/>
<UnitName Value="IDEMsgIntf"/> <UnitName Value="IDEImagesIntf"/>
</Item37> </Item37>
<Item38> <Item38>
<Filename Value="ideoptionsintf.pas"/> <Filename Value="idemsgintf.pas"/>
<UnitName Value="IDEOptionsIntf"/> <UnitName Value="IDEMsgIntf"/>
</Item38> </Item38>
<Item39> <Item39>
<Filename Value="idetextconverter.pas"/> <Filename Value="ideoptionsintf.pas"/>
<UnitName Value="IDETextConverter"/> <UnitName Value="IDEOptionsIntf"/>
</Item39> </Item39>
<Item40> <Item40>
<Filename Value="ideutils.pas"/> <Filename Value="idetextconverter.pas"/>
<UnitName Value="IDEUtils"/> <UnitName Value="IDETextConverter"/>
</Item40> </Item40>
<Item41> <Item41>
<Filename Value="ideutils.pas"/>
<UnitName Value="IDEUtils"/>
</Item41>
<Item42>
<Filename Value="idewindowintf.pas"/> <Filename Value="idewindowintf.pas"/>
<HasRegisterProc Value="True"/> <HasRegisterProc Value="True"/>
<UnitName Value="IDEWindowIntf"/> <UnitName Value="IDEWindowIntf"/>
</Item41>
<Item42>
<Filename Value="imagelisteditor.pp"/>
<UnitName Value="ImageListEditor"/>
</Item42> </Item42>
<Item43> <Item43>
<Filename Value="imagelisteditor.lfm"/> <Filename Value="imagelisteditor.pp"/>
<Type Value="LFM"/> <UnitName Value="ImageListEditor"/>
</Item43> </Item43>
<Item44> <Item44>
<Filename Value="keyvalpropeditdlg.pas"/> <Filename Value="imagelisteditor.lfm"/>
<UnitName Value="KeyValPropEditDlg"/> <Type Value="LFM"/>
</Item44> </Item44>
<Item45> <Item45>
<Filename Value="keyvalpropeditdlg.lfm"/> <Filename Value="keyvalpropeditdlg.pas"/>
<Type Value="LFM"/> <UnitName Value="KeyValPropEditDlg"/>
</Item45> </Item45>
<Item46> <Item46>
<Filename Value="lazideintf.pas"/> <Filename Value="keyvalpropeditdlg.lfm"/>
<UnitName Value="LazIDEIntf"/> <Type Value="LFM"/>
</Item46> </Item46>
<Item47> <Item47>
<Filename Value="lazstringgridedit.pas"/> <Filename Value="lazideintf.pas"/>
<UnitName Value="LazStringGridEdit"/> <UnitName Value="LazIDEIntf"/>
</Item47> </Item47>
<Item48> <Item48>
<Filename Value="lazstringgridedit.lfm"/> <Filename Value="lazstringgridedit.pas"/>
<Type Value="LFM"/> <UnitName Value="LazStringGridEdit"/>
</Item48> </Item48>
<Item49> <Item49>
<Filename Value="listviewpropedit.pp"/> <Filename Value="lazstringgridedit.lfm"/>
<UnitName Value="ListViewPropEdit"/> <Type Value="LFM"/>
</Item49> </Item49>
<Item50> <Item50>
<Filename Value="listviewpropedit.lfm"/> <Filename Value="listviewpropedit.pp"/>
<Type Value="LFM"/> <UnitName Value="ListViewPropEdit"/>
</Item50> </Item50>
<Item51> <Item51>
<Filename Value="macrodefintf.pas"/> <Filename Value="listviewpropedit.lfm"/>
<UnitName Value="MacroDefIntf"/> <Type Value="LFM"/>
</Item51> </Item51>
<Item52> <Item52>
<Filename Value="macrointf.pas"/> <Filename Value="macrodefintf.pas"/>
<UnitName Value="MacroIntf"/> <UnitName Value="MacroDefIntf"/>
</Item52> </Item52>
<Item53> <Item53>
<Filename Value="maskpropedit.pas"/> <Filename Value="macrointf.pas"/>
<UnitName Value="MaskPropEdit"/> <UnitName Value="MacroIntf"/>
</Item53> </Item53>
<Item54> <Item54>
<Filename Value="maskpropedit.lfm"/> <Filename Value="maskpropedit.pas"/>
<Type Value="LFM"/> <UnitName Value="MaskPropEdit"/>
</Item54> </Item54>
<Item55> <Item55>
<Filename Value="menuintf.pas"/> <Filename Value="maskpropedit.lfm"/>
<UnitName Value="MenuIntf"/> <Type Value="LFM"/>
</Item55> </Item55>
<Item56> <Item56>
<Filename Value="newfield.pas"/> <Filename Value="menuintf.pas"/>
<UnitName Value="NewField"/> <UnitName Value="MenuIntf"/>
</Item56> </Item56>
<Item57> <Item57>
<Filename Value="newfield.lfm"/> <Filename Value="newfield.pas"/>
<Type Value="LFM"/> <UnitName Value="NewField"/>
</Item57> </Item57>
<Item58> <Item58>
<Filename Value="newitemintf.pas"/> <Filename Value="newfield.lfm"/>
<UnitName Value="NewItemIntf"/> <Type Value="LFM"/>
</Item58> </Item58>
<Item59> <Item59>
<Filename Value="objectinspector.pp"/> <Filename Value="newitemintf.pas"/>
<UnitName Value="ObjectInspector"/> <UnitName Value="NewItemIntf"/>
</Item59> </Item59>
<Item60> <Item60>
<Filename Value="objectinspector.lfm"/> <Filename Value="objectinspector.pp"/>
<Type Value="LFM"/> <UnitName Value="ObjectInspector"/>
</Item60> </Item60>
<Item61> <Item61>
<Filename Value="objinspstrconsts.pas"/> <Filename Value="objectinspector.lfm"/>
<UnitName Value="ObjInspStrConsts"/> <Type Value="LFM"/>
</Item61> </Item61>
<Item62> <Item62>
<Filename Value="oifavoriteproperties.pas"/> <Filename Value="objinspstrconsts.pas"/>
<UnitName Value="OIFavoriteProperties"/> <UnitName Value="ObjInspStrConsts"/>
</Item62> </Item62>
<Item63> <Item63>
<Filename Value="packageintf.pas"/> <Filename Value="oifavoriteproperties.pas"/>
<UnitName Value="PackageIntf"/> <UnitName Value="OIFavoriteProperties"/>
</Item63> </Item63>
<Item64> <Item64>
<Filename Value="projectintf.pas"/> <Filename Value="packageintf.pas"/>
<UnitName Value="ProjectIntf"/> <UnitName Value="PackageIntf"/>
</Item64> </Item64>
<Item65> <Item65>
<Filename Value="projectresourcesintf.pas"/> <Filename Value="projectintf.pas"/>
<UnitName Value="ProjectResourcesIntf"/> <UnitName Value="ProjectIntf"/>
</Item65> </Item65>
<Item66> <Item66>
<Filename Value="propedits.pp"/> <Filename Value="projectresourcesintf.pas"/>
<UnitName Value="PropEdits"/> <UnitName Value="ProjectResourcesIntf"/>
</Item66> </Item66>
<Item67> <Item67>
<Filename Value="propeditutils.pp"/> <Filename Value="propedits.pp"/>
<UnitName Value="PropEditUtils"/> <UnitName Value="PropEdits"/>
</Item67> </Item67>
<Item68> <Item68>
<Filename Value="srceditorintf.pas"/> <Filename Value="propeditutils.pp"/>
<UnitName Value="SrcEditorIntf"/> <UnitName Value="PropEditUtils"/>
</Item68> </Item68>
<Item69> <Item69>
<Filename Value="statusbarpropedit.pp"/> <Filename Value="srceditorintf.pas"/>
<UnitName Value="StatusBarPropEdit"/> <UnitName Value="SrcEditorIntf"/>
</Item69> </Item69>
<Item70> <Item70>
<Filename Value="stringspropeditdlg.pas"/> <Filename Value="statusbarpropedit.pp"/>
<UnitName Value="StringsPropEditDlg"/> <UnitName Value="StatusBarPropEdit"/>
</Item70> </Item70>
<Item71> <Item71>
<Filename Value="stringspropeditdlg.lfm"/> <Filename Value="stringspropeditdlg.pas"/>
<Type Value="LFM"/> <UnitName Value="StringsPropEditDlg"/>
</Item71> </Item71>
<Item72> <Item72>
<Filename Value="texttools.pas"/> <Filename Value="stringspropeditdlg.lfm"/>
<UnitName Value="TextTools"/> <Type Value="LFM"/>
</Item72> </Item72>
<Item73> <Item73>
<Filename Value="treeviewpropedit.pas"/> <Filename Value="texttools.pas"/>
<UnitName Value="TreeViewPropEdit"/> <UnitName Value="TextTools"/>
</Item73> </Item73>
<Item74> <Item74>
<Filename Value="treeviewpropedit.lfm"/> <Filename Value="treeviewpropedit.pas"/>
<Type Value="LFM"/> <UnitName Value="TreeViewPropEdit"/>
</Item74> </Item74>
<Item75> <Item75>
<Filename Value="unitresources.pas"/> <Filename Value="treeviewpropedit.lfm"/>
<UnitName Value="UnitResources"/> <Type Value="LFM"/>
</Item75> </Item75>
<Item76> <Item76>
<Filename Value="projpackintf.pas"/> <Filename Value="unitresources.pas"/>
<UnitName Value="ProjPackIntf"/> <UnitName Value="UnitResources"/>
</Item76> </Item76>
<Item77> <Item77>
<Filename Value="dbgridcolumnspropeditform.pas"/> <Filename Value="projpackintf.pas"/>
<UnitName Value="DBGridColumnsPropEditForm"/> <UnitName Value="ProjPackIntf"/>
</Item77> </Item77>
<Item78> <Item78>
<Filename Value="toolbarintf.pas"/> <Filename Value="dbgridcolumnspropeditform.pas"/>
<UnitName Value="ToolBarIntf"/> <UnitName Value="DBGridColumnsPropEditForm"/>
</Item78> </Item78>
<Item79> <Item79>
<Filename Value="changeparentdlg.pas"/> <Filename Value="toolbarintf.pas"/>
<UnitName Value="ChangeParentDlg"/> <UnitName Value="ToolBarIntf"/>
</Item79> </Item79>
<Item80> <Item80>
<Filename Value="changeparentdlg.pas"/>
<UnitName Value="ChangeParentDlg"/>
</Item80>
<Item81>
<Filename Value="changeparentdlg.lfm"/> <Filename Value="changeparentdlg.lfm"/>
<Type Value="LFM"/> <Type Value="LFM"/>
</Item80> </Item81>
</Files> </Files>
<LazDoc Paths="docs"/> <LazDoc Paths="docs"/>
<i18n> <i18n>

View File

@ -10,18 +10,19 @@ interface
uses uses
ActionsEditor, ActionsEditorStd, BaseIDEIntf, CheckGroupEditorDlg, ActionsEditor, ActionsEditorStd, BaseIDEIntf, CheckGroupEditorDlg,
CheckListboxEditorDlg, CollectionPropEditForm, ColumnDlg, ComponentEditors, CheckListboxEditorDlg, CollectionPropEditForm, ColumnDlg, ComponentEditors,
ComponentReg, ComponentTreeView, CompOptsIntf, DBPropEdits, fieldseditor, ComponentReg, ComponentTreeView, CompOptsIntf, DBPropEdits,
fieldslist, FileFilterPropEditor, FormEditingIntf, frmSelectProps, EditorSyntaxHighlighterDef, fieldseditor, fieldslist, FileFilterPropEditor,
GraphicPropEdit, GraphPropEdits, HeaderControlPropEdit, HelpFPDoc, FormEditingIntf, frmSelectProps, GraphicPropEdit, GraphPropEdits,
IDECommands, IDEDialogs, IDEExternToolIntf, IDEHelpIntf, IDEImagesIntf, HeaderControlPropEdit, HelpFPDoc, IDECommands, IDEDialogs,
IDEMsgIntf, IDEOptionsIntf, IDETextConverter, IDEUtils, IDEWindowIntf, IDEExternToolIntf, IDEHelpIntf, IDEImagesIntf, IDEMsgIntf, IDEOptionsIntf,
ImageListEditor, KeyValPropEditDlg, LazIDEIntf, LazStringGridEdit, IDETextConverter, IDEUtils, IDEWindowIntf, ImageListEditor,
ListViewPropEdit, MacroDefIntf, MacroIntf, MaskPropEdit, MenuIntf, NewField, KeyValPropEditDlg, LazIDEIntf, LazStringGridEdit, ListViewPropEdit,
NewItemIntf, ObjectInspector, ObjInspStrConsts, OIFavoriteProperties, MacroDefIntf, MacroIntf, MaskPropEdit, MenuIntf, NewField, NewItemIntf,
PackageIntf, ProjectIntf, ProjectResourcesIntf, PropEdits, PropEditUtils, ObjectInspector, ObjInspStrConsts, OIFavoriteProperties, PackageIntf,
SrcEditorIntf, StatusBarPropEdit, StringsPropEditDlg, TextTools, ProjectIntf, ProjectResourcesIntf, PropEdits, PropEditUtils, SrcEditorIntf,
TreeViewPropEdit, UnitResources, ProjPackIntf, DBGridColumnsPropEditForm, StatusBarPropEdit, StringsPropEditDlg, TextTools, TreeViewPropEdit,
ToolBarIntf, ChangeParentDlg, LazarusPackageIntf; UnitResources, ProjPackIntf, DBGridColumnsPropEditForm, ToolBarIntf,
ChangeParentDlg, LazarusPackageIntf;
implementation implementation

View File

@ -25,8 +25,13 @@ unit IDEOptionsIntf;
interface interface
uses uses
Classes, SysUtils, LCLProc, Controls, Buttons, Forms, StdCtrls, Graphics, Classes, SysUtils,
ComCtrls, Grids, Laz2_XMLCfg; // LCL
LCLProc, Controls, Buttons, Forms, StdCtrls, Graphics, ComCtrls, Grids,
// LazUtils
Laz2_XMLCfg,
// IdeIntf
EditorSyntaxHighlighterDef;
const const
NoParent = -1; NoParent = -1;
@ -157,6 +162,7 @@ type
public public
// read-only access to options needed by external packages. // read-only access to options needed by external packages.
// feel free to extend when needed // feel free to extend when needed
function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter; virtual; abstract;
property TabPosition: TTabPosition read GetTabPosition; property TabPosition: TTabPosition read GetTabPosition;
end; end;

View File

@ -39,9 +39,10 @@ uses
// LazUtils // LazUtils
LConvEncoding, FileUtil, LazFileUtils, LazUTF8, LazUTF8Classes, LConvEncoding, FileUtil, LazFileUtils, LazUTF8, LazUTF8Classes,
// IDEIntf // IDEIntf
ComponentReg, LazIDEIntf, PackageIntf, ProjectIntf, IDEDialogs, IDEExternToolIntf, ComponentReg, IDEDialogs,
LazIDEIntf, PackageIntf, ProjectIntf, IDEExternToolIntf, IDEOptionsIntf,
// IDE // IDE
IDEProcs, DialogProcs, EditorOptions, CompilerOptions, IDEProcs, DialogProcs, CompilerOptions,
ProjPackBase, Project, ProjectDefs, PackageDefs, PackageSystem, PackageEditor, ProjPackBase, Project, ProjectDefs, PackageDefs, PackageSystem, PackageEditor,
BasePkgManager, LazarusIDEStrConsts, BasePkgManager, LazarusIDEStrConsts,
// Converter // Converter
@ -1514,8 +1515,9 @@ begin
if LazProject.MainUnitInfo=nil then begin if LazProject.MainUnitInfo=nil then begin
// add .lpr file to project as main unit // add .lpr file to project as main unit
MainUnitInfo:=TUnitInfo.Create(fMainUnitConverter.fPascalBuffer); MainUnitInfo:=TUnitInfo.Create(fMainUnitConverter.fPascalBuffer);
Assert(Assigned(IDEEditorOptions), 'TConvertDelphiProject.CreateMainSourceFile: IDEEditorOptions is Nil.');
MainUnitInfo.DefaultSyntaxHighlighter:= MainUnitInfo.DefaultSyntaxHighlighter:=
ExtensionToLazSyntaxHighlighter(fMainUnitConverter.LazFileExt); IDEEditorOptions.ExtensionToLazSyntaxHighlighter(fMainUnitConverter.LazFileExt);
MainUnitInfo.IsPartOfProject:=true; MainUnitInfo.IsPartOfProject:=true;
LazProject.AddFile(MainUnitInfo,false); LazProject.AddFile(MainUnitInfo,false);
LazProject.MainFileID:=0; LazProject.MainFileID:=0;

View File

@ -40,10 +40,11 @@ interface
uses uses
// RTL, FCL // RTL, FCL
Classes, SysUtils, resource, Classes, SysUtils, typinfo, resource,
// LCL // LCL
Controls, ExtCtrls, Graphics, LCLProc, FileUtil, Laz2_XMLCfg, lazutf8classes, Graphics, LCLProc, LResources, Forms, Dialogs, ComCtrls, LCLType,
LazClasses, LazFileUtils, LResources, Forms, Dialogs, ComCtrls, LCLType, LazUTF8, // LazUtils
FileUtil, LazFileUtils, LazUTF8, LazClasses, LazUTF8Classes, Laz2_XMLCfg,
// Synedit // Synedit
SynEdit, SynEditAutoComplete, SynEditKeyCmds, SynEditTypes, SynEdit, SynEditAutoComplete, SynEditKeyCmds, SynEditTypes,
SynEditMiscClasses, SynBeautifier, SynEditTextTrimmer, SynEditMouseCmds, SynEditMiscClasses, SynBeautifier, SynEditTextTrimmer, SynEditMouseCmds,
@ -63,9 +64,9 @@ uses
// codetools // codetools
LinkScanner, CodeToolManager, LinkScanner, CodeToolManager,
// IDEIntf // IDEIntf
IDECommands, SrcEditorIntf, IDEOptionsIntf, IDEDialogs, IDECommands, SrcEditorIntf, IDEOptionsIntf, IDEDialogs, EditorSyntaxHighlighterDef,
// IDE // IDE
SourceMarks, LazarusIDEStrConsts, IDEProcs, KeyMapping, LazConf, typinfo; SourceMarks, LazarusIDEStrConsts, IDEProcs, KeyMapping, LazConf;
const const
DefaultCompletionLongLineHintType = sclpExtendRightOnly; DefaultCompletionLongLineHintType = sclpExtendRightOnly;
@ -83,11 +84,6 @@ type
TLazSynPluginSyncroEditForm = class(TForm) end; TLazSynPluginSyncroEditForm = class(TForm) end;
TLazSynPluginSyncroEditFormOff = class(TForm) end; TLazSynPluginSyncroEditFormOff = class(TForm) end;
TLazSyntaxHighlighter =
(lshNone, lshText, lshFreePascal, lshDelphi, lshLFM, lshXML, lshHTML,
lshCPP, lshPerl, lshJava, lshBash, lshPython, lshPHP, lshSQL, lshJScript,
lshDiff, lshBat, lshIni, lshPo, lshPike);
TColorSchemeAttributeFeature = TColorSchemeAttributeFeature =
( hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior, ( hafBackColor, hafForeColor, hafFrameColor, hafAlpha, hafPrior,
hafStyle, hafStyleMask, hafStyle, hafStyleMask,
@ -700,8 +696,7 @@ type
DefaultFileExtensions: string; DefaultFileExtensions: string;
ColorScheme: String; ColorScheme: String;
SampleSource: String; SampleSource: String;
AddAttrSampleLines: array[TAdditionalHilightAttribute] of AddAttrSampleLines: array[TAdditionalHilightAttribute] of Integer; // first line = 1
Integer; // first line = 1
MappedAttributes: TStringList; // map attributes to pascal MappedAttributes: TStringList; // map attributes to pascal
DefaultCommentType: TCommentType; DefaultCommentType: TCommentType;
CaretXY: TPoint; CaretXY: TPoint;
@ -727,8 +722,7 @@ type
function FindByType(AType: TLazSyntaxHighlighter): Integer; function FindByType(AType: TLazSyntaxHighlighter): Integer;
function GetDefaultFilextension(AType: TLazSyntaxHighlighter): String; function GetDefaultFilextension(AType: TLazSyntaxHighlighter): String;
function GetInfoByType(AType: TLazSyntaxHighlighter): TEditOptLanguageInfo; function GetInfoByType(AType: TLazSyntaxHighlighter): TEditOptLanguageInfo;
property Items[Index: Integer]: TEditOptLanguageInfo read GetInfos; property Items[Index: Integer]: TEditOptLanguageInfo read GetInfos; default;
default;
end; end;
TEditorOptions = class; TEditorOptions = class;
@ -1459,6 +1453,7 @@ type
procedure GetSynEditPreviewSettings(APreviewEditor: TObject); procedure GetSynEditPreviewSettings(APreviewEditor: TObject);
procedure ApplyFontSettingsTo(ASynEdit: TSynEdit); procedure ApplyFontSettingsTo(ASynEdit: TSynEdit);
function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter; override;
function CreateSyn(LazSynHilighter: TLazSyntaxHighlighter): TSrcIDEHighlighter; function CreateSyn(LazSynHilighter: TLazSyntaxHighlighter): TSrcIDEHighlighter;
function ReadColorScheme(const LanguageName: String): String; function ReadColorScheme(const LanguageName: String): String;
function ReadPascalColorScheme: String; function ReadPascalColorScheme: String;
@ -1693,40 +1688,11 @@ type
property StringBreakPrefix: String read FStringBreakPrefix write FStringBreakPrefix; property StringBreakPrefix: String read FStringBreakPrefix write FStringBreakPrefix;
end; end;
const
LazSyntaxHighlighterNames: array[TLazSyntaxHighlighter] of String = (
'None',
'Text',
'FreePascal',
'Delphi',
'LFM',
'XML',
'HTML',
'C++',
'Perl',
'Java',
'Bash',
'Python',
'PHP',
'SQL',
'JScript',
'Diff',
'Bat',
'Ini',
'PO',
'Pike'
);
var var
EditorOpts: TEditorOptions; EditorOpts: TEditorOptions;
function StrToLazSyntaxHighlighter(const s: String): TLazSyntaxHighlighter;
function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter;
function FilenameToLazSyntaxHighlighter(Filename: String): TLazSyntaxHighlighter;
procedure RepairEditorFontSize(var FontSize: integer); procedure RepairEditorFontSize(var FontSize: integer);
function GetSyntaxHighlighterCaption(h: TLazSyntaxHighlighter): string;
function BuildBorlandDCIFile(ACustomSynAutoComplete: TCustomSynAutoComplete): Boolean; function BuildBorlandDCIFile(ACustomSynAutoComplete: TCustomSynAutoComplete): Boolean;
function ColorSchemeFactory: TColorSchemeFactory; function ColorSchemeFactory: TColorSchemeFactory;
function UserSchemeDirectory(CreateIfNotExists: Boolean = False): String; function UserSchemeDirectory(CreateIfNotExists: Boolean = False): String;
@ -2239,74 +2205,9 @@ begin
FontSize := SynDefaultFontSize; FontSize := SynDefaultFontSize;
end; end;
function StrToLazSyntaxHighlighter(const s: String): TLazSyntaxHighlighter;
begin
for Result := Low(TLazSyntaxHighlighter) to High(TLazSyntaxHighlighter) do
if (CompareText(s, LazSyntaxHighlighterNames[Result]) = 0) then
exit;
Result := lshFreePascal;
end;
function ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter;
var
s, CurExt: String;
LangID, StartPos, EndPos: Integer;
begin
Result := lshNone;
if (Ext = '') or (Ext = '.') or (EditorOpts.HighlighterList = Nil) then
exit;
Ext := lowercase(Ext);
if (Ext[1] = '.') then
Ext := copy(Ext, 2, length(Ext) - 1);
LangID := 0;
while LangID < EditorOpts.HighlighterList.Count do
begin
s := EditorOpts.HighlighterList[LangID].FileExtensions;
StartPos := 1;
while StartPos <= length(s) do
begin
Endpos := StartPos;
while (EndPos <= length(s)) and (s[EndPos] <> ';') do
inc(EndPos);
CurExt := copy(s, Startpos, EndPos - StartPos);
if (CurExt <> '') and (CurExt[1] = '.') then
CurExt := copy(CurExt, 2, length(CurExt) - 1);
if lowercase(CurExt) = Ext then
begin
Result := EditorOpts.HighlighterList[LangID].TheType;
exit;
end;
Startpos := EndPos + 1;
end;
inc(LangID);
end;
end;
function FilenameToLazSyntaxHighlighter(Filename: String): TLazSyntaxHighlighter;
var
CompilerMode: TCompilerMode;
begin
Result:=ExtensionToLazSyntaxHighlighter(ExtractFileExt(Filename));
if Result in [lshFreePascal,lshDelphi] then begin
CompilerMode:=CodeToolBoss.GetCompilerModeForDirectory(ExtractFilePath(Filename));
if CompilerMode in [cmDELPHI,cmTP] then
Result:=lshDelphi
else
Result:=lshFreePascal;
end;
end;
const const
EditOptsConfFileName = 'editoroptions.xml'; EditOptsConfFileName = 'editoroptions.xml';
function GetSyntaxHighlighterCaption(h: TLazSyntaxHighlighter): string;
begin
if h=lshFreePascal then
Result:='Free Pascal'
else
Result:=LazSyntaxHighlighterNames[h];
end;
function BuildBorlandDCIFile( function BuildBorlandDCIFile(
ACustomSynAutoComplete: TCustomSynAutoComplete): Boolean; ACustomSynAutoComplete: TCustomSynAutoComplete): Boolean;
// returns if something has changed // returns if something has changed
@ -2578,7 +2479,6 @@ end;
constructor TEditOptLanguageInfo.Create; constructor TEditOptLanguageInfo.Create;
begin begin
inherited Create; inherited Create;
end; end;
destructor TEditOptLanguageInfo.Destroy; destructor TEditOptLanguageInfo.Destroy;
@ -5601,6 +5501,41 @@ begin
ASynEdit.Font.Quality := fqDefault; ASynEdit.Font.Quality := fqDefault;
end; end;
function TEditorOptions.ExtensionToLazSyntaxHighlighter(Ext: String): TLazSyntaxHighlighter;
var
s, CurExt: String;
LangID, StartPos, EndPos: Integer;
begin
Result := lshNone;
if (Ext = '') or (Ext = '.') or (HighlighterList = Nil) then
exit;
Ext := lowercase(Ext);
if (Ext[1] = '.') then
Ext := copy(Ext, 2, length(Ext) - 1);
LangID := 0;
while LangID < HighlighterList.Count do
begin
s := HighlighterList[LangID].FileExtensions;
StartPos := 1;
while StartPos <= length(s) do
begin
Endpos := StartPos;
while (EndPos <= length(s)) and (s[EndPos] <> ';') do
inc(EndPos);
CurExt := copy(s, Startpos, EndPos - StartPos);
if (CurExt <> '') and (CurExt[1] = '.') then
CurExt := copy(CurExt, 2, length(CurExt) - 1);
if lowercase(CurExt) = Ext then
begin
Result := HighlighterList[LangID].TheType;
exit;
end;
Startpos := EndPos + 1;
end;
inc(LangID);
end;
end;
procedure TEditorOptions.GetSynEditSettings(ASynEdit: TSynEdit; procedure TEditorOptions.GetSynEditSettings(ASynEdit: TSynEdit;
SimilarEdit: TSynEdit); SimilarEdit: TSynEdit);
// read synedit settings from config file // read synedit settings from config file

View File

@ -41,11 +41,17 @@ uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
Classes, SysUtils, contnrs, FileUtil, LazUTF8, LCLType, Controls, Forms, Buttons, Classes, SysUtils, contnrs,
StdCtrls, Dialogs, ExtCtrls, LCLProc, ButtonPanel, EditBtn, // LCL
IDEExternToolIntf, IDEHelpIntf, PropEdits, IDEDialogs, IDECommands, LCLType, Controls, Forms, StdCtrls, Dialogs, LCLProc, ButtonPanel, EditBtn,
FileProcs, LazFileUtils, TransferMacros, LazarusIDEStrConsts, EnvironmentOpts, // LazUtils
KeyMapping, IDEProcs, LazConfigStorage, IDEUtils; FileUtil, LazFileUtils, LazUTF8, LazConfigStorage,
// Codetools
FileProcs,
// IdeIntf
IDEExternToolIntf, IDEHelpIntf, PropEdits, IDEDialogs, IDECommands, IDEUtils,
// IDE
TransferMacros, LazarusIDEStrConsts, EnvironmentOpts, KeyMapping;
const const
ExternalToolOptionsVersion = 3; ExternalToolOptionsVersion = 3;
@ -130,11 +136,9 @@ type
function Run(Index: integer; {%H-}ShowAbort: boolean): TModalResult; function Run(Index: integer; {%H-}ShowAbort: boolean): TModalResult;
// load/save // load/save
function Load(Config: TConfigStorage): TModalResult; function Load(Config: TConfigStorage): TModalResult;
function Load(Config: TConfigStorage; const Path: string): TModalResult; function Load(Config: TConfigStorage; const Path: string): TModalResult; override;
override;
function Save(Config: TConfigStorage): TModalResult; function Save(Config: TConfigStorage): TModalResult;
function Save(Config: TConfigStorage; const Path: string): TModalResult; function Save(Config: TConfigStorage; const Path: string): TModalResult; override;
override;
procedure LoadShortCuts(KeyCommandRelationList: TKeyCommandRelationList); procedure LoadShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
procedure SaveShortCuts(KeyCommandRelationList: TKeyCommandRelationList); procedure SaveShortCuts(KeyCommandRelationList: TKeyCommandRelationList);
end; end;

View File

@ -25,9 +25,17 @@ unit editor_codefolding_options;
interface interface
uses uses
Classes, SysUtils, FileUtil, Forms, StdCtrls, ExtCtrls, Graphics, Classes, SysUtils,
LCLType, EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, Controls, // LCL
SynEditHighlighter, SynEditHighlighterFoldBase, CheckLst, Buttons; LCLType, Forms, StdCtrls, ExtCtrls, Graphics, Controls, CheckLst, Buttons,
// LazUtils
FileUtil,
// IdeIntf
EditorSyntaxHighlighterDef, IDEOptionsIntf,
// SynEdit
SynEditHighlighter, SynEditHighlighterFoldBase,
// IDE
EditorOptions, LazarusIDEStrConsts;
type type

View File

@ -25,9 +25,15 @@ unit editor_dividerdraw_options;
interface interface
uses uses
Classes, SysUtils, StdCtrls, ExtCtrls, Graphics, Classes, SysUtils,
LCLType, EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, // LCL
SynEditHighlighter, Spin, ColorBox, CheckLst; StdCtrls, ExtCtrls, Graphics, Spin, ColorBox, CheckLst, LCLType,
// IdeIntf
EditorSyntaxHighlighterDef, IDEOptionsIntf,
// SynEdit
SynEditHighlighter,
// IDE
EditorOptions, LazarusIDEStrConsts;
type type
@ -60,7 +66,6 @@ type
procedure TopLvlColorBoxChange(Sender: TObject); procedure TopLvlColorBoxChange(Sender: TObject);
procedure TopLvlColorCheckBoxChange(Sender: TObject); procedure TopLvlColorCheckBoxChange(Sender: TObject);
private private
{ private declarations }
FHighlighters: array[TLazSyntaxHighlighter] of TSrcIDEHighlighter; FHighlighters: array[TLazSyntaxHighlighter] of TSrcIDEHighlighter;
FCurHighlighter: TSrcIDEHighlighter; FCurHighlighter: TSrcIDEHighlighter;
FCurDividerConf: TSynDividerDrawConfig; FCurDividerConf: TSynDividerDrawConfig;

View File

@ -25,11 +25,19 @@ unit editor_markup_options;
interface interface
uses uses
Classes, StdCtrls, ComCtrls, Graphics, sysutils, EditorOptions, LazarusIDEStrConsts, Classes, sysutils,
SourceMarks, IDEOptionsIntf, Spin, ExtCtrls, SynEditMarkupBracket, editor_color_options, // LCL
editor_general_options, editor_keymapping_options, editor_codefolding_options, SynEdit, LCLType, CheckLst, Controls, StdCtrls, ComCtrls, Graphics, Spin, ExtCtrls,
SynCompletion, SynHighlighterPas, SynEditKeyCmds, SynEditHighlighterFoldBase, DividerBevel, // LazControls
LCLType, CheckLst, Controls; DividerBevel,
// IDEIntf
EditorSyntaxHighlighterDef, IDEOptionsIntf,
// SynEdit
SynEdit, SynCompletion, SynHighlighterPas, SynEditKeyCmds, SynEditHighlighterFoldBase,
// IDE
EditorOptions, LazarusIDEStrConsts, SourceMarks, SynEditMarkupBracket,
editor_color_options, editor_general_options, editor_keymapping_options,
editor_codefolding_options;
type type
{ TEditorMarkupOptionsFrame } { TEditorMarkupOptionsFrame }

View File

@ -38,8 +38,13 @@ unit IDECmdLine;
interface interface
uses uses
Classes, SysUtils, FileUtil, LazFileUtils, LazUTF8, LazUTF8Classes, Classes, SysUtils,
LazLogger, LazConf, LCLProc; // LazUtils
FileUtil, LazFileUtils, LazUTF8, LazUTF8Classes, LazLogger,
// LCL
LCLProc,
// IDE
LazConf;
const const
ShowSetupDialogOptLong='--setup'; ShowSetupDialogOptLong='--setup';

View File

@ -36,9 +36,20 @@ unit InputHistory;
interface interface
uses uses
Classes, SysUtils, FileProcs, LazFileCache, DiffPatch, IDEProcs, // RTL + LCL
AvgLvlTree, Laz2_XMLCfg, SynEditTypes, LazConf, Dialogs, LazUTF8, IDEDialogs, Classes, SysUtils,
ProjectIntf, LazFileUtils; // LCL
Dialogs,
// LazUtils
LazFileCache, LazFileUtils, LazUTF8, AvgLvlTree, Laz2_XMLCfg,
// Codetools
FileProcs,
// IdeIntf
ProjectIntf, IDEDialogs,
// SynEdit
SynEditTypes,
// IDE
DiffPatch, LazConf, IDEProcs;
{$ifdef Windows} {$ifdef Windows}
{$define CaseInsensitiveFilenames} {$define CaseInsensitiveFilenames}

View File

@ -32,9 +32,17 @@ unit KeyMapping;
interface interface
uses uses
Classes, SysUtils, contnrs, Forms, LCLType, LCLProc, AvgLvlTree, Laz2_XMLCfg, Classes, SysUtils, contnrs,
// LCL
Forms, LCLType, LCLProc,
// LazUtils
AvgLvlTree, Laz2_XMLCfg,
// SynEdit
SynEditKeyCmds, SynPluginTemplateEdit, SynPluginSyncroEdit, SynPluginMultiCaret, SynEditKeyCmds, SynPluginTemplateEdit, SynPluginSyncroEdit, SynPluginMultiCaret,
IDECommands, LazarusIDEStrConsts, Debugger; // IdeIntf
IDECommands,
// IDE
LazarusIDEStrConsts, Debugger;
type type
TKeyMapScheme = ( TKeyMapScheme = (

View File

@ -75,7 +75,7 @@ uses
// SynEdit // SynEdit
SynEdit, AllSynEdit, SynEditKeyCmds, SynEditMarks, SynEditHighlighter, SynEdit, AllSynEdit, SynEditKeyCmds, SynEditMarks, SynEditHighlighter,
// IDE interface // IDE interface
IDEIntf, ObjectInspector, PropEdits, PropEditUtils, IDEIntf, ObjectInspector, PropEdits, PropEditUtils, EditorSyntaxHighlighterDef,
MacroIntf, IDECommands, IDEWindowIntf, ComponentReg, MacroIntf, IDECommands, IDEWindowIntf, ComponentReg,
SrcEditorIntf, NewItemIntf, IDEExternToolIntf, IDEMsgIntf, SrcEditorIntf, NewItemIntf, IDEExternToolIntf, IDEMsgIntf,
PackageIntf, ProjectIntf, CompOptsIntf, MenuIntf, LazIDEIntf, IDEDialogs, PackageIntf, ProjectIntf, CompOptsIntf, MenuIntf, LazIDEIntf, IDEDialogs,

View File

@ -52,23 +52,26 @@ interface
{$I ide.inc} {$I ide.inc}
uses uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
Math, Classes, LCLType, LCLProc, LCLIntf, Buttons, Menus, ComCtrls, Classes, SysUtils, Types, Math,
SysUtils, types, Controls, Graphics, ExtCtrls, Dialogs, LazFileUtils, Forms, // LCL
CodeToolManager, AVL_Tree, SynEditKeyCmds, PackageIntf, LCLProc, Buttons, Menus, ComCtrls, Controls, Graphics, Dialogs, Forms, ImgList,
// LazUtils
LazFileUtils,
// Codetools
CodeToolManager,
// SynEdit
SynEditKeyCmds,
// IDEIntf // IDEIntf
IDEImagesIntf, SrcEditorIntf, LazIDEIntf, MenuIntf, NewItemIntf, IDEImagesIntf, SrcEditorIntf, LazIDEIntf, MenuIntf, NewItemIntf, PackageIntf,
IDECommands, IDEWindowIntf, ProjectIntf, ToolBarIntf, IDECommands, IDEWindowIntf, ProjectIntf, ToolBarIntf, ObjectInspector,
PropEdits, IDEDialogs, EditorSyntaxHighlighterDef,
// IDE // IDE
LazConf, LazarusIDEStrConsts, ProjectDefs, Project, IDEDialogs, LazConf, LazarusIDEStrConsts, Project, BuildManager, IDEProcs,
TransferMacros, ObjectInspector, PropEdits, BuildManager, EnvironmentOpts, EditorOptions, CompilerOptions, SourceEditor, SourceSynEditor,
EnvironmentOpts, EditorOptions, CompilerOptions, KeyMapping, IDEProcs, FindInFilesDlg, DesktopManager, Splash, MainBar, MainIntf, Designer, Debugger;
Debugger, IDEOptionDefs, Splash, Designer,
SourceEditor, FindInFilesDlg,
MainBar, MainIntf, SourceSynEditor, PseudoTerminalDlg,
DesktopManager, ImgList;
type type
TResetToolFlag = ( TResetToolFlag = (

View File

@ -43,24 +43,27 @@ interface
{$I ide.inc} {$I ide.inc}
uses uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
// RTL + FCL + LCL // RTL + FCL
Classes, SysUtils, TypInfo, LCLProc, Forms, Controls, Dialogs, maps, Classes, SysUtils, TypInfo,
// LCL
LCLProc, Forms, Controls, Dialogs, maps,
// CodeTools // CodeTools
CodeToolsConfig, ExprEval, DefineTemplates, CodeToolsConfig, ExprEval, DefineTemplates, BasicCodeTools, CodeToolsCfgScript,
BasicCodeTools, CodeToolsCfgScript, CodeToolManager, CodeCache, FileProcs, LinkScanner, CodeToolManager, CodeCache, FileProcs,
// LazUtils // LazUtils
FPCAdds, FileUtil, LazFileUtils, LazFileCache, LazUTF8, Laz2_XMLCfg, FPCAdds, FileUtil, LazFileUtils, LazFileCache, LazUTF8, Laz2_XMLCfg,
// IDEIntf // IDEIntf
PropEdits, CompOptsIntf, ProjectIntf, MacroIntf, MacroDefIntf, UnitResources, PropEdits, UnitResources, EditorSyntaxHighlighterDef,
PackageIntf, SrcEditorIntf, IDEOptionsIntf, IDEDialogs, LazIDEIntf, ProjPackIntf, CompOptsIntf, ProjectIntf, MacroIntf, MacroDefIntf, SrcEditorIntf,
IDEOptionsIntf, IDEDialogs, LazIDEIntf, ProjPackIntf, PackageIntf,
// IDE // IDE
CompOptsModes, ProjectResources, LazConf, W32Manifest, ProjectIcon, CompOptsModes, ProjectResources, LazConf, W32Manifest, ProjectIcon,
IDECmdLine, LazarusIDEStrConsts, CompilerOptions, IDECmdLine, IDEProcs, CompilerOptions, RunParamsOpts, ModeMatrixOpts,
TransferMacros, EditorOptions, IDEProcs, RunParamsOpts, ProjectDefs, ProjPackBase, TransferMacros, ProjectDefs, FileReferenceList, EditDefineTree,
FileReferenceList, EditDefineTree, ModeMatrixOpts, PackageDefs, PackageSystem; LazarusIDEStrConsts, ProjPackBase, PackageDefs, PackageSystem;
type type
TUnitInfo = class; TUnitInfo = class;
@ -1121,6 +1124,7 @@ const
var var
Project1: TProject = nil;// the main project Project1: TProject = nil;// the main project
function FilenameToLazSyntaxHighlighter(Filename: String): TLazSyntaxHighlighter;
function AddCompileReasonsDiff(const PropertyName: string; function AddCompileReasonsDiff(const PropertyName: string;
const Old, New: TCompileReasons; Tool: TCompilerDiffTool = nil): boolean; const Old, New: TCompileReasons; Tool: TCompilerDiffTool = nil): boolean;
function dbgs(aType: TUnitCompDependencyType): string; overload; function dbgs(aType: TUnitCompDependencyType): string; overload;
@ -1135,6 +1139,20 @@ const
ProjOptionsPath = 'ProjectOptions/'; ProjOptionsPath = 'ProjectOptions/';
function FilenameToLazSyntaxHighlighter(Filename: String): TLazSyntaxHighlighter;
var
CompilerMode: TCompilerMode;
begin
Result:=IDEEditorOptions.ExtensionToLazSyntaxHighlighter(ExtractFileExt(Filename));
if Result in [lshFreePascal,lshDelphi] then begin
CompilerMode:=CodeToolBoss.GetCompilerModeForDirectory(ExtractFilePath(Filename));
if CompilerMode in [cmDELPHI,cmTP] then
Result:=lshDelphi
else
Result:=lshFreePascal;
end;
end;
function AddCompileReasonsDiff(const PropertyName: string; function AddCompileReasonsDiff(const PropertyName: string;
const Old, New: TCompileReasons; Tool: TCompilerDiffTool): boolean; const Old, New: TCompileReasons; Tool: TCompilerDiffTool): boolean;
begin begin
@ -1854,8 +1872,7 @@ begin
else else
LoadedDesigner:=false; LoadedDesigner:=false;
fUserReadOnly:=XMLConfig.GetValue(Path+'ReadOnly/Value',false); fUserReadOnly:=XMLConfig.GetValue(Path+'ReadOnly/Value',false);
FBuildFileIfActive:=XMLConfig.GetValue(Path+'BuildFileIfActive/Value', FBuildFileIfActive:=XMLConfig.GetValue(Path+'BuildFileIfActive/Value',false);
false);
FRunFileIfActive:=XMLConfig.GetValue(Path+'RunFileIfActive/Value',false); FRunFileIfActive:=XMLConfig.GetValue(Path+'RunFileIfActive/Value',false);
fUsageCount:=XMLConfig.GetValue(Path+'UsageCount/Value',-1); fUsageCount:=XMLConfig.GetValue(Path+'UsageCount/Value',-1);
if fUsageCount<1 then begin if fUsageCount<1 then begin
@ -1923,7 +1940,7 @@ begin
end; end;
fFileName:=NewFilename; fFileName:=NewFilename;
if EditorOpts<>nil then if IDEEditorOptions<>nil then
UpdateDefaultHighlighter(FilenameToLazSyntaxHighlighter(FFilename)); UpdateDefaultHighlighter(FilenameToLazSyntaxHighlighter(FFilename));
UpdateSourceDirectoryReference; UpdateSourceDirectoryReference;
end; end;
@ -3591,7 +3608,7 @@ var
begin begin
NewBuf:=CodeToolBoss.CreateFile(Filename); NewBuf:=CodeToolBoss.CreateFile(Filename);
AnUnitInfo:=TUnitInfo.Create(NewBuf); AnUnitInfo:=TUnitInfo.Create(NewBuf);
if EditorOpts<>nil then if IDEEditorOptions<>nil then
AnUnitInfo.DefaultSyntaxHighlighter := FilenameToLazSyntaxHighlighter(NewBuf.Filename); AnUnitInfo.DefaultSyntaxHighlighter := FilenameToLazSyntaxHighlighter(NewBuf.Filename);
Result:=AnUnitInfo; Result:=AnUnitInfo;
end; end;
@ -5054,7 +5071,7 @@ procedure TProject.UpdateAllCustomHighlighter;
var var
i: Integer; i: Integer;
begin begin
if EditorOpts=nil then exit; if IDEEditorOptions=nil then exit;
for i:=0 to UnitCount-1 do for i:=0 to UnitCount-1 do
Units[i].UpdateHasCustomHighlighter(FilenameToLazSyntaxHighlighter(Units[i].Filename)); Units[i].UpdateHasCustomHighlighter(FilenameToLazSyntaxHighlighter(Units[i].Filename));
end; end;
@ -5063,7 +5080,7 @@ procedure TProject.UpdateAllSyntaxHighlighter;
var var
i: Integer; i: Integer;
begin begin
if EditorOpts=nil then exit; if IDEEditorOptions=nil then exit;
for i:=0 to UnitCount-1 do for i:=0 to UnitCount-1 do
Units[i].UpdateDefaultHighlighter(FilenameToLazSyntaxHighlighter(Units[i].Filename)); Units[i].UpdateDefaultHighlighter(FilenameToLazSyntaxHighlighter(Units[i].Filename));
end; end;

View File

@ -37,9 +37,16 @@ unit ProjectDefs;
interface interface
uses uses
Classes, SysUtils, Controls, Forms, Classes, SysUtils,
FileProcs, LazFileUtils, Laz2_XMLCfg, LazUTF8, // LCL
Controls, Forms,
// Codetools
FileProcs,
// LazUtils
LazFileUtils, LazUTF8, Laz2_XMLCfg,
// IdeIntf
CompOptsIntf, ProjectIntf, LazIDEIntf, CompOptsIntf, ProjectIntf, LazIDEIntf,
// IDE
frmCustomApplicationOptions, PublishModule, IDEProcs, LazarusIDEStrConsts; frmCustomApplicationOptions, PublishModule, IDEProcs, LazarusIDEStrConsts;
type type

View File

@ -34,9 +34,16 @@ unit ProjectIcon;
interface interface
uses uses
Classes, SysUtils, FileUtil, Laz2_XMLCfg, lazutf8classes, LCLProc, // RTL + LCL
Graphics, FileProcs, LazFileUtils, LazFileCache, Classes, SysUtils, resource, groupiconresource,
resource, groupiconresource, ProjectResourcesIntf; // LCL
LCLProc, Graphics,
// LazUtils
FileUtil, LazFileUtils, LazFileCache, Laz2_XMLCfg, lazutf8classes,
// Codetools
FileProcs,
// IdeIntf
ProjectResourcesIntf;
type type
TIconData = array of byte; TIconData = array of byte;

View File

@ -39,7 +39,8 @@ interface
uses uses
// RTL + LCL // RTL + LCL
Classes, SysUtils, resource, reswriter, fgl, Classes, SysUtils, resource, reswriter, fgl,
Controls, LCLProc, LResources, Dialogs, // LCL
Controls, Dialogs, LCLProc, LResources,
// LazUtils // LazUtils
LazFileUtils, AvgLvlTree, Laz2_XMLCfg, LazFileUtils, AvgLvlTree, Laz2_XMLCfg,
// Codetools // Codetools

View File

@ -35,11 +35,18 @@ unit ProjectUserResources;
interface interface
uses uses
Classes, SysUtils, Laz2_XMLCfg, LCLProc, FileProcs, LazFileUtils, LazUTF8, // RTL + LCL
Classes, SysUtils,
resource, bitmapresource, groupresource, groupiconresource, groupcursorresource,
// LCL
LCLProc,
// LazUtils
FileProcs, LazFileUtils, LazUTF8, Laz2_XMLCfg,
// IdeIntf
ProjectResourcesIntf, IDEMsgIntf, MacroIntf, IDEExternToolIntf, ProjectResourcesIntf, IDEMsgIntf, MacroIntf, IDEExternToolIntf,
LazarusIDEStrConsts, resource, bitmapresource, groupresource, // IDE
groupiconresource, groupcursorresource; LazarusIDEStrConsts;
type type
TUserResourceType = ( TUserResourceType = (
rtIcon, // maps to RT_GROUP_ICON rtIcon, // maps to RT_GROUP_ICON

View File

@ -36,7 +36,14 @@ interface
uses uses
Classes, SysUtils, Classes, SysUtils,
IDEProcs, SynRegExpr, LazFileUtils, Laz2_XMLCfg, LCLProc; // LCL
LCLProc,
// LazUtils
LazFileUtils, Laz2_XMLCfg,
// SynEdit
SynRegExpr,
// IDE
IDEProcs;
type type
{ TPublishModuleOptions } { TPublishModuleOptions }

View File

@ -47,10 +47,15 @@ uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
Classes, SysUtils, LCLProc, Controls, Forms, Buttons, StdCtrls, ComCtrls, Classes, SysUtils,
Dialogs, ExtCtrls, BaseIDEIntf, IDEHelpIntf, ProjectIntf, IDEDialogs, // LCL
IDEProcs, SysVarUserOverrideDlg, InputHistory, LazarusIDEStrConsts, LazFileUtils, Controls, Forms, Buttons, StdCtrls, ComCtrls, Dialogs, ButtonPanel,
Laz2_XMLCfg, LazFileCache, LazUTF8, ButtonPanel; // IdeIntf
BaseIDEIntf, IDEHelpIntf, ProjectIntf, IDEDialogs,
// LazUtils
LazFileUtils, LazFileCache, LazUTF8, Laz2_XMLCfg,
// IDE
IDEProcs, SysVarUserOverrideDlg, InputHistory, LazarusIDEStrConsts;
{ The xml format version: { The xml format version:
When the format changes (new values, changed formats) we can distinguish old When the format changes (new values, changed formats) we can distinguish old

View File

@ -42,11 +42,17 @@ uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
SynEditMouseCmds, Classes, SysUtils, StrUtils, types, Math, SynEditMouseCmds,
// RTL + FCL
Classes, SysUtils, StrUtils, types, Math,
// LCL
Controls, Forms, ComCtrls, StdCtrls, Graphics, Dialogs, Extctrls, Menus, Controls, Forms, ComCtrls, StdCtrls, Graphics, Dialogs, Extctrls, Menus,
ExtendedNotebook, LCLProc, LCLType, LResources, LCLIntf, FileUtil, LazFileUtils, LCLProc, LCLType, LResources, LCLIntf, FileUtil, LazFileUtils,
Translations, ClipBrd, HelpIntfs, Translations, ClipBrd, HelpIntfs, Messages,
LConvEncoding, Messages, LazLoggerBase, lazutf8classes, LazLogger, AvgLvlTree, // LazControls
ExtendedNotebook,
// LazUtils
LConvEncoding, LazLoggerBase, LazUTF8Classes, LazLogger, AvgLvlTree,
LazFileCache, LazUTF8, LazFileCache, LazUTF8,
// codetools // codetools
BasicCodeTools, CodeBeautifier, CodeToolManager, CodeCache, SourceLog, BasicCodeTools, CodeBeautifier, CodeToolManager, CodeCache, SourceLog,
@ -58,21 +64,21 @@ uses
SynBeautifier, SynPluginMultiCaret, SynBeautifier, SynPluginMultiCaret,
SynPluginSyncronizedEditBase, SourceSynEditor, SynPluginSyncronizedEditBase, SourceSynEditor,
SynExportHTML, SynHighlighterPas, SynEditMarkup, SynEditMarkupIfDef, SynExportHTML, SynHighlighterPas, SynEditMarkup, SynEditMarkupIfDef,
// Intf // IdeIntf
SrcEditorIntf, MenuIntf, LazIDEIntf, PackageIntf, IDEHelpIntf, IDEImagesIntf, SrcEditorIntf, MenuIntf, LazIDEIntf, PackageIntf, IDEHelpIntf, IDEImagesIntf,
IDEWindowIntf, ProjectIntf, MacroDefIntf, ToolBarIntf, IDEWindowIntf, ProjectIntf, MacroDefIntf, ToolBarIntf, IDEDialogs,
EditorSyntaxHighlighterDef,
// DebuggerIntf
DbgIntfBaseTypes, DbgIntfDebuggerBase,
// IDE units // IDE units
IDECmdLine, IDEDialogs, LazarusIDEStrConsts, IDECommands, IDECmdLine, LazarusIDEStrConsts, IDECommands, EditorOptions, EnvironmentOpts,
EditorOptions, EnvironmentOpts, WordCompletion, FindReplaceDialog, IDEProcs, WordCompletion, FindReplaceDialog, IDEProcs, IDEOptionDefs, IDEHelpManager,
IDEOptionDefs, IDEHelpManager, MacroPromptDlg, TransferMacros, MacroPromptDlg, TransferMacros, CodeContextForm, SrcEditHintFrm, etMessagesWnd,
CodeContextForm, SrcEditHintFrm, etMessagesWnd, etSrcEditMarks, InputHistory, etSrcEditMarks, InputHistory, CodeMacroPrompt, CodeTemplatesDlg, CodeToolsOptions,
CodeMacroPrompt, CodeTemplatesDlg, CodeToolsOptions, editor_general_options, SortSelectionDlg, EncloseSelectionDlg, EncloseIfDef,
editor_general_options, InvertAssignTool, SourceEditProcs, SourceMarks, CharacterMapDlg, SearchFrm,
SortSelectionDlg, EncloseSelectionDlg, EncloseIfDef, InvertAssignTool, MultiPasteDlg, EditorMacroListViewer, EditorToolbarStatic, editortoolbar_options,
SourceEditProcs, SourceMarks, CharacterMapDlg, SearchFrm, MultiPasteDlg, FPDocHints, MainIntf, GotoFrm, BaseDebugManager, Debugger;
FPDocHints, EditorMacroListViewer, EditorToolbarStatic, editortoolbar_options,
DbgIntfBaseTypes, DbgIntfDebuggerBase, BaseDebugManager, Debugger, MainIntf,
GotoFrm;
type type
TSourceNotebook = class; TSourceNotebook = class;

View File

@ -32,22 +32,28 @@ unit SourceFileManager;
interface interface
uses uses
AVL_Tree, typinfo, math, Classes, SysUtils, Controls, Forms, Dialogs, LCLIntf, Classes, SysUtils, typinfo, math, AVL_Tree, fpjson,
LCLType, LCLProc, FileProcs, IDEProcs, DialogProcs, IDEDialogs, // LCL
LConvEncoding, LazFileCache, FileUtil, LazFileUtils, LazUTF8, LResources, PropEdits, Controls, Forms, Dialogs, LCLIntf, LCLType, LCLProc, LclStrConsts,
DefineTemplates, IDEMsgIntf, IDEProtocol, LazarusIDEStrConsts, LclStrConsts, NewDialog, LResources, LCLMemManager,
NewProjectDlg, LazIDEIntf, MainBase, MainBar, MainIntf, MenuIntf, NewItemIntf, // LazUtils
CompOptsIntf, SrcEditorIntf, IDEWindowIntf, ProjectIntf, Project, ProjectDefs, LConvEncoding, LazFileCache, FileUtil, LazFileUtils, LazUTF8,
ProjectInspector, PackageIntf, PackageDefs, PackageSystem, CompilerOptions, // Codetools
BasePkgManager, ComponentReg, SourceEditor, EditorOptions, CustomFormEditor, BasicCodeTools, CodeToolsStructs, CodeToolManager, FileProcs, DefineTemplates,
FormEditor, EmptyMethodsDlg, BaseDebugManager, ControlSelection, CodeCache, CodeTree, FindDeclarationTool, KeywordFuncLists,
TransferMacros, EnvironmentOpts, BuildManager, EditorMacroListViewer, // IdeIntf
KeywordFuncLists, FindRenameIdentifier, GenericCheckList, ViewUnit_Dlg, IDEDialogs, PropEdits, IDEMsgIntf, LazIDEIntf, MenuIntf, NewItemIntf,
DiskDiffsDialog, InputHistory, CheckLFMDlg, LCLMemManager, CodeToolManager, CompOptsIntf, SrcEditorIntf, IDEWindowIntf, ProjectIntf, PackageIntf,
CodeToolsStructs, ConvCodeTool, CodeCache, CodeTree, FindDeclarationTool, FormEditingIntf, IDEExternToolIntf, ObjectInspector, UnitResources, ComponentReg,
BasicCodeTools, SynEdit, UnitResources, IDEExternToolIntf, ObjectInspector, EditorSyntaxHighlighterDef,
PublishModule, etMessagesWnd, SourceSynEditor, // IDE
FormEditingIntf, fpjson; IDEProcs, DialogProcs, IDEProtocol, LazarusIDEStrConsts, NewDialog, NewProjectDlg,
MainBase, MainBar, MainIntf, Project, ProjectDefs, ProjectInspector, CompilerOptions,
SourceSynEditor, SourceEditor, EditorOptions, EnvironmentOpts, CustomFormEditor,
ControlSelection, FormEditor, EmptyMethodsDlg, BaseDebugManager, TransferMacros,
BuildManager, EditorMacroListViewer, FindRenameIdentifier, GenericCheckList,
ViewUnit_Dlg, DiskDiffsDialog, InputHistory, CheckLFMDlg, PublishModule, etMessagesWnd,
ConvCodeTool, BasePkgManager, PackageDefs, PackageSystem;
type type

View File

@ -55,7 +55,7 @@ const
LCLPlatformDisplayNames: array[TLCLPlatform] of string = ( LCLPlatformDisplayNames: array[TLCLPlatform] of string = (
'gtk (deprecated)', 'gtk (deprecated)',
'gtk 2', 'gtk2',
'gtk3 (alpha)', 'gtk3 (alpha)',
'win32/win64', 'win32/win64',
'wince', 'wince',