mirror of
https://github.com/moparisthebest/Simba
synced 2025-02-07 02:30:19 -05:00
Added base for code completion. I believe find declaration works (control+click).
This commit is contained in:
parent
e1d5f0788f
commit
70599f5a92
@ -424,8 +424,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
J := AnsiString(UpCase(I))[1];
|
J := AnsiString(UpCase(I))[1];
|
||||||
case I of
|
case I of
|
||||||
'a'..'z', 'A'..'Z', '_': mHashTable[I] := Ord(J) - 64;
|
'a'..'z', 'A'..'Z', '_': mHashTable[I] := Ord(J) - 64;
|
||||||
'0'..'9': mHashTable[I] := Ord(J) - 47;
|
'0'..'9': mHashTable[I] := Ord(J) - 47;
|
||||||
else mHashTable[Char(I)] := 0;
|
else mHashTable[Char(I)] := 0;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2238,7 +2238,7 @@ end;
|
|||||||
|
|
||||||
function TmwBasePasLex.GetIsJunk: Boolean;
|
function TmwBasePasLex.GetIsJunk: Boolean;
|
||||||
begin
|
begin
|
||||||
result := IsTokenIDJunk(FTokenID) or (FUseDefines and (FDefineStack > 0) and (TokenID <> tokNull) and (TokenID <> tok_DONE));
|
result := IsTokenIDJunk(FTokenID) or (FUseDefines and (FDefineStack > 0) and (TokenID <> tokNull) and (TokenID <> tok_DONE));
|
||||||
// Result := fTokenID in [tokAnsiComment, tokBorComment, tokCRLF, tokCRLFCo, tokSlashesComment, tokSpace]; //XM 20001210
|
// Result := fTokenID in [tokAnsiComment, tokBorComment, tokCRLF, tokCRLFCo, tokSlashesComment, tokSpace]; //XM 20001210
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
<TargetFileExt Value=".exe"/>
|
<TargetFileExt Value=".exe"/>
|
||||||
<ResourceType Value="res"/>
|
<ResourceType Value="res"/>
|
||||||
<UseXPManifest Value="True"/>
|
<UseXPManifest Value="True"/>
|
||||||
|
<Icon Value="0"/>
|
||||||
<ActiveEditorIndexAtStart Value="0"/>
|
<ActiveEditorIndexAtStart Value="0"/>
|
||||||
</General>
|
</General>
|
||||||
<VersionInfo>
|
<VersionInfo>
|
||||||
@ -39,14 +40,16 @@
|
|||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item2>
|
</Item2>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="44">
|
<Units Count="45">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="Valistus.lpr"/>
|
<Filename Value="Valistus.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="Valistus"/>
|
<UnitName Value="Valistus"/>
|
||||||
<CursorPos X="21" Y="17"/>
|
<CursorPos X="31" Y="4"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="126"/>
|
<EditorIndex Value="3"/>
|
||||||
|
<UsageCount Value="140"/>
|
||||||
|
<Loaded Value="True"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
<Unit1>
|
<Unit1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
@ -54,36 +57,36 @@
|
|||||||
<ComponentName Value="MainForm"/>
|
<ComponentName Value="MainForm"/>
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="Main"/>
|
<UnitName Value="Main"/>
|
||||||
<CursorPos X="37" Y="426"/>
|
<CursorPos X="38" Y="26"/>
|
||||||
<TopLine Value="404"/>
|
<TopLine Value="10"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit1>
|
</Unit1>
|
||||||
<Unit2>
|
<Unit2>
|
||||||
<Filename Value="..\v_Constants.pas"/>
|
<Filename Value="..\v_Constants.pas"/>
|
||||||
<UnitName Value="v_Constants"/>
|
<UnitName Value="v_Constants"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit2>
|
</Unit2>
|
||||||
<Unit3>
|
<Unit3>
|
||||||
<Filename Value="..\v_SynPlugins.pas"/>
|
<Filename Value="..\v_SynPlugins.pas"/>
|
||||||
<UnitName Value="v_SynPlugins"/>
|
<UnitName Value="v_SynPlugins"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit3>
|
</Unit3>
|
||||||
<Unit4>
|
<Unit4>
|
||||||
<Filename Value="..\v_ideCodeParser.pas"/>
|
<Filename Value="..\v_ideCodeParser.pas"/>
|
||||||
<UnitName Value="v_ideCodeParser"/>
|
<UnitName Value="v_ideCodeParser"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit4>
|
</Unit4>
|
||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="..\v_ideCodeInsight.pas"/>
|
<Filename Value="..\v_ideCodeInsight.pas"/>
|
||||||
<UnitName Value="v_ideCodeInsight"/>
|
<UnitName Value="v_ideCodeInsight"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="..\v_MiscFunctions.pas"/>
|
<Filename Value="..\v_MiscFunctions.pas"/>
|
||||||
<UnitName Value="v_MiscFunctions"/>
|
<UnitName Value="v_MiscFunctions"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit6>
|
</Unit6>
|
||||||
<Unit7>
|
<Unit7>
|
||||||
<Filename Value="v_Constants.pas"/>
|
<Filename Value="v_Constants.pas"/>
|
||||||
@ -91,65 +94,63 @@
|
|||||||
<UnitName Value="v_Constants"/>
|
<UnitName Value="v_Constants"/>
|
||||||
<CursorPos X="5" Y="7"/>
|
<CursorPos X="5" Y="7"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit7>
|
</Unit7>
|
||||||
<Unit8>
|
<Unit8>
|
||||||
<Filename Value="CastaliaPasLex.pas"/>
|
<Filename Value="CastaliaPasLex.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="CastaliaPasLex"/>
|
<UnitName Value="CastaliaPasLex"/>
|
||||||
<CursorPos X="3" Y="374"/>
|
<CursorPos X="20" Y="2241"/>
|
||||||
<TopLine Value="355"/>
|
<TopLine Value="2222"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
<Unit9>
|
<Unit9>
|
||||||
<Filename Value="CastaliaPasLexTypes.pas"/>
|
<Filename Value="CastaliaPasLexTypes.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="CastaliaPasLexTypes"/>
|
<UnitName Value="CastaliaPasLexTypes"/>
|
||||||
<CursorPos X="61" Y="140"/>
|
<CursorPos X="26" Y="308"/>
|
||||||
<TopLine Value="177"/>
|
<TopLine Value="284"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit9>
|
</Unit9>
|
||||||
<Unit10>
|
<Unit10>
|
||||||
<Filename Value="CastaliaSimplePasPar.pas"/>
|
<Filename Value="CastaliaSimplePasPar.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="CastaliaSimplePasPar"/>
|
<UnitName Value="CastaliaSimplePasPar"/>
|
||||||
<CursorPos X="15" Y="517"/>
|
<CursorPos X="40" Y="4617"/>
|
||||||
<TopLine Value="500"/>
|
<TopLine Value="4679"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit10>
|
</Unit10>
|
||||||
<Unit11>
|
<Unit11>
|
||||||
<Filename Value="CastaliaSimplePasParTypes.pas"/>
|
<Filename Value="CastaliaSimplePasParTypes.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="CastaliaSimplePasParTypes"/>
|
<UnitName Value="CastaliaSimplePasParTypes"/>
|
||||||
<CursorPos X="1" Y="19"/>
|
<CursorPos X="54" Y="10"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit11>
|
</Unit11>
|
||||||
<Unit12>
|
<Unit12>
|
||||||
<Filename Value="v_SynPlugins.pas"/>
|
<Filename Value="v_SynPlugins.pas"/>
|
||||||
<UnitName Value="v_SynPlugins"/>
|
<UnitName Value="v_SynPlugins"/>
|
||||||
<CursorPos X="15" Y="27"/>
|
<CursorPos X="15" Y="27"/>
|
||||||
<TopLine Value="8"/>
|
<TopLine Value="8"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit12>
|
</Unit12>
|
||||||
<Unit13>
|
<Unit13>
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
<Filename Value="v_ideCodeParser.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="v_ideCodeParser"/>
|
<UnitName Value="v_ideCodeParser"/>
|
||||||
<CursorPos X="22" Y="273"/>
|
<CursorPos X="17" Y="208"/>
|
||||||
<TopLine Value="255"/>
|
<TopLine Value="189"/>
|
||||||
<EditorIndex Value="3"/>
|
<UsageCount Value="140"/>
|
||||||
<UsageCount Value="126"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit13>
|
</Unit13>
|
||||||
<Unit14>
|
<Unit14>
|
||||||
<Filename Value="v_ideCodeInsight.pas"/>
|
<Filename Value="v_ideCodeInsight.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<UnitName Value="v_ideCodeInsight"/>
|
<UnitName Value="v_ideCodeInsight"/>
|
||||||
<CursorPos X="41" Y="285"/>
|
<CursorPos X="31" Y="19"/>
|
||||||
<TopLine Value="259"/>
|
<TopLine Value="4"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit14>
|
</Unit14>
|
||||||
<Unit15>
|
<Unit15>
|
||||||
@ -158,48 +159,46 @@
|
|||||||
<UnitName Value="v_MiscFunctions"/>
|
<UnitName Value="v_MiscFunctions"/>
|
||||||
<CursorPos X="27" Y="5"/>
|
<CursorPos X="27" Y="5"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="126"/>
|
<UsageCount Value="140"/>
|
||||||
</Unit15>
|
</Unit15>
|
||||||
<Unit16>
|
<Unit16>
|
||||||
<Filename Value="ValistusDefines.inc"/>
|
<Filename Value="ValistusDefines.inc"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<CursorPos X="2" Y="2"/>
|
<CursorPos X="2" Y="2"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="4"/>
|
<UsageCount Value="140"/>
|
||||||
<UsageCount Value="126"/>
|
|
||||||
<Loaded Value="True"/>
|
|
||||||
</Unit16>
|
</Unit16>
|
||||||
<Unit17>
|
<Unit17>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\inc\objpash.inc"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\inc\objpash.inc"/>
|
||||||
<CursorPos X="23" Y="192"/>
|
<CursorPos X="23" Y="192"/>
|
||||||
<TopLine Value="173"/>
|
<TopLine Value="173"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit17>
|
</Unit17>
|
||||||
<Unit18>
|
<Unit18>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\inc\systemh.inc"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\inc\systemh.inc"/>
|
||||||
<CursorPos X="11" Y="825"/>
|
<CursorPos X="11" Y="825"/>
|
||||||
<TopLine Value="806"/>
|
<TopLine Value="806"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit18>
|
</Unit18>
|
||||||
<Unit19>
|
<Unit19>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\objpas\classes\classesh.inc"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\objpas\classes\classesh.inc"/>
|
||||||
<CursorPos X="25" Y="598"/>
|
<CursorPos X="25" Y="598"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit19>
|
</Unit19>
|
||||||
<Unit20>
|
<Unit20>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\stdctrls.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\stdctrls.pp"/>
|
||||||
<UnitName Value="StdCtrls"/>
|
<UnitName Value="StdCtrls"/>
|
||||||
<CursorPos X="20" Y="33"/>
|
<CursorPos X="20" Y="33"/>
|
||||||
<TopLine Value="16"/>
|
<TopLine Value="16"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit20>
|
</Unit20>
|
||||||
<Unit21>
|
<Unit21>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\lcltype.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\lcltype.pp"/>
|
||||||
<UnitName Value="LCLType"/>
|
<UnitName Value="LCLType"/>
|
||||||
<CursorPos X="17" Y="607"/>
|
<CursorPos X="17" Y="607"/>
|
||||||
<TopLine Value="579"/>
|
<TopLine Value="579"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit21>
|
</Unit21>
|
||||||
<Unit22>
|
<Unit22>
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
<Filename Value="v_autocompleteform.pas"/>
|
||||||
@ -208,273 +207,184 @@
|
|||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="v_AutoCompleteForm"/>
|
<UnitName Value="v_AutoCompleteForm"/>
|
||||||
<CursorPos X="46" Y="574"/>
|
<CursorPos X="46" Y="574"/>
|
||||||
<TopLine Value="543"/>
|
<TopLine Value="1"/>
|
||||||
<EditorIndex Value="1"/>
|
<EditorIndex Value="1"/>
|
||||||
<UsageCount Value="122"/>
|
<UsageCount Value="136"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit22>
|
</Unit22>
|
||||||
<Unit23>
|
<Unit23>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\include\winapih.inc"/>
|
<Filename Value="..\..\..\LazSVN\lcl\include\winapih.inc"/>
|
||||||
<CursorPos X="18" Y="235"/>
|
<CursorPos X="18" Y="235"/>
|
||||||
<TopLine Value="3"/>
|
<TopLine Value="3"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit23>
|
</Unit23>
|
||||||
<Unit24>
|
<Unit24>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\controls.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\controls.pp"/>
|
||||||
<UnitName Value="Controls"/>
|
<UnitName Value="Controls"/>
|
||||||
<CursorPos X="15" Y="1800"/>
|
<CursorPos X="15" Y="1800"/>
|
||||||
<TopLine Value="1781"/>
|
<TopLine Value="1781"/>
|
||||||
<UsageCount Value="15"/>
|
<UsageCount Value="14"/>
|
||||||
</Unit24>
|
</Unit24>
|
||||||
<Unit25>
|
<Unit25>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\graphics.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\graphics.pp"/>
|
||||||
<UnitName Value="Graphics"/>
|
<UnitName Value="Graphics"/>
|
||||||
<CursorPos X="3" Y="92"/>
|
<CursorPos X="3" Y="92"/>
|
||||||
<TopLine Value="82"/>
|
<TopLine Value="82"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit25>
|
</Unit25>
|
||||||
<Unit26>
|
<Unit26>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\forms.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\forms.pp"/>
|
||||||
<UnitName Value="Forms"/>
|
<UnitName Value="Forms"/>
|
||||||
<CursorPos X="15" Y="582"/>
|
<CursorPos X="15" Y="582"/>
|
||||||
<TopLine Value="527"/>
|
<TopLine Value="527"/>
|
||||||
<UsageCount Value="13"/>
|
<UsageCount Value="12"/>
|
||||||
</Unit26>
|
</Unit26>
|
||||||
<Unit27>
|
<Unit27>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\lclclasses.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\lclclasses.pp"/>
|
||||||
<UnitName Value="LCLClasses"/>
|
<UnitName Value="LCLClasses"/>
|
||||||
<CursorPos X="31" Y="38"/>
|
<CursorPos X="31" Y="38"/>
|
||||||
<TopLine Value="22"/>
|
<TopLine Value="22"/>
|
||||||
<UsageCount Value="3"/>
|
<UsageCount Value="2"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
<Unit28>
|
<Unit28>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\lmessages.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\lmessages.pp"/>
|
||||||
<UnitName Value="LMessages"/>
|
<UnitName Value="LMessages"/>
|
||||||
<CursorPos X="3" Y="327"/>
|
<CursorPos X="3" Y="327"/>
|
||||||
<TopLine Value="83"/>
|
<TopLine Value="83"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit28>
|
</Unit28>
|
||||||
<Unit29>
|
<Unit29>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\packages\fcl-image\src\fpcanvas.pp"/>
|
<Filename Value="..\..\..\FPC\Source\packages\fcl-image\src\fpcanvas.pp"/>
|
||||||
<UnitName Value="FPCanvas"/>
|
<UnitName Value="FPCanvas"/>
|
||||||
<CursorPos X="32" Y="78"/>
|
<CursorPos X="32" Y="78"/>
|
||||||
<TopLine Value="59"/>
|
<TopLine Value="59"/>
|
||||||
<UsageCount Value="1"/>
|
<UsageCount Value="10"/>
|
||||||
</Unit29>
|
</Unit29>
|
||||||
<Unit30>
|
<Unit30>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\objpas\objpas.pp"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\objpas\objpas.pp"/>
|
||||||
<UnitName Value="objpas"/>
|
<UnitName Value="objpas"/>
|
||||||
<CursorPos X="8" Y="36"/>
|
<CursorPos X="8" Y="36"/>
|
||||||
<TopLine Value="17"/>
|
<TopLine Value="17"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit30>
|
</Unit30>
|
||||||
<Unit31>
|
<Unit31>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\stringhashlist.pas"/>
|
<Filename Value="..\..\..\LazSVN\lcl\stringhashlist.pas"/>
|
||||||
<UnitName Value="StringHashList"/>
|
<UnitName Value="StringHashList"/>
|
||||||
<CursorPos X="44" Y="57"/>
|
<CursorPos X="44" Y="57"/>
|
||||||
<TopLine Value="40"/>
|
<TopLine Value="40"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit31>
|
</Unit31>
|
||||||
<Unit32>
|
<Unit32>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\objpas\strutils.pp"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\objpas\strutils.pp"/>
|
||||||
<UnitName Value="strutils"/>
|
<UnitName Value="strutils"/>
|
||||||
<CursorPos X="10" Y="72"/>
|
<CursorPos X="10" Y="72"/>
|
||||||
<TopLine Value="53"/>
|
<TopLine Value="53"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit32>
|
</Unit32>
|
||||||
<Unit33>
|
<Unit33>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\objpas\sysutils\syspchh.inc"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\objpas\sysutils\syspchh.inc"/>
|
||||||
<CursorPos X="18" Y="32"/>
|
<CursorPos X="18" Y="32"/>
|
||||||
<TopLine Value="11"/>
|
<TopLine Value="11"/>
|
||||||
<UsageCount Value="2"/>
|
<UsageCount Value="1"/>
|
||||||
</Unit33>
|
</Unit33>
|
||||||
<Unit34>
|
<Unit34>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\components\synedit\synedit.pp"/>
|
<Filename Value="..\..\..\LazSVN\components\synedit\synedit.pp"/>
|
||||||
<UnitName Value="SynEdit"/>
|
<UnitName Value="SynEdit"/>
|
||||||
<CursorPos X="45" Y="5647"/>
|
<CursorPos X="45" Y="5647"/>
|
||||||
<TopLine Value="5621"/>
|
<TopLine Value="5621"/>
|
||||||
<UsageCount Value="14"/>
|
<UsageCount Value="13"/>
|
||||||
</Unit34>
|
</Unit34>
|
||||||
<Unit35>
|
<Unit35>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\components\synedit\synedithighlighter.pp"/>
|
<Filename Value="..\..\..\LazSVN\components\synedit\synedithighlighter.pp"/>
|
||||||
<UnitName Value="SynEditHighlighter"/>
|
<UnitName Value="SynEditHighlighter"/>
|
||||||
<CursorPos X="33" Y="230"/>
|
<CursorPos X="33" Y="230"/>
|
||||||
<TopLine Value="303"/>
|
<TopLine Value="303"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit35>
|
</Unit35>
|
||||||
<Unit36>
|
<Unit36>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\win32\system.pp"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\win32\system.pp"/>
|
||||||
<UnitName Value="System"/>
|
<UnitName Value="System"/>
|
||||||
<CursorPos X="2" Y="35"/>
|
<CursorPos X="2" Y="35"/>
|
||||||
<TopLine Value="16"/>
|
<TopLine Value="16"/>
|
||||||
<UsageCount Value="7"/>
|
<UsageCount Value="6"/>
|
||||||
</Unit36>
|
</Unit36>
|
||||||
<Unit37>
|
<Unit37>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\components\synedit\syneditkeycmds.pp"/>
|
<Filename Value="..\..\..\LazSVN\components\synedit\syneditkeycmds.pp"/>
|
||||||
<UnitName Value="SynEditKeyCmds"/>
|
<UnitName Value="SynEditKeyCmds"/>
|
||||||
<CursorPos X="11" Y="261"/>
|
<CursorPos X="11" Y="261"/>
|
||||||
<TopLine Value="135"/>
|
<TopLine Value="135"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit37>
|
</Unit37>
|
||||||
<Unit38>
|
<Unit38>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\components\synedit\syneditmiscclasses.pp"/>
|
<Filename Value="..\..\..\LazSVN\components\synedit\syneditmiscclasses.pp"/>
|
||||||
<UnitName Value="SynEditMiscClasses"/>
|
<UnitName Value="SynEditMiscClasses"/>
|
||||||
<CursorPos X="34" Y="996"/>
|
<CursorPos X="34" Y="996"/>
|
||||||
<TopLine Value="1007"/>
|
<TopLine Value="1007"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="9"/>
|
||||||
</Unit38>
|
</Unit38>
|
||||||
<Unit39>
|
<Unit39>
|
||||||
<Filename Value="C:\Lazarus\FPC\Source\rtl\objpas\sysutils\sysstrh.inc"/>
|
<Filename Value="..\..\..\FPC\Source\rtl\objpas\sysutils\sysstrh.inc"/>
|
||||||
<CursorPos X="10" Y="223"/>
|
<CursorPos X="10" Y="223"/>
|
||||||
<TopLine Value="204"/>
|
<TopLine Value="204"/>
|
||||||
<UsageCount Value="5"/>
|
<UsageCount Value="4"/>
|
||||||
</Unit39>
|
</Unit39>
|
||||||
<Unit40>
|
<Unit40>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\components\synedit\syneditautocomplete.pp"/>
|
<Filename Value="..\..\..\LazSVN\components\synedit\syneditautocomplete.pp"/>
|
||||||
<UnitName Value="SynEditAutoComplete"/>
|
<UnitName Value="SynEditAutoComplete"/>
|
||||||
<CursorPos X="13" Y="182"/>
|
<CursorPos X="13" Y="182"/>
|
||||||
<TopLine Value="157"/>
|
<TopLine Value="157"/>
|
||||||
<UsageCount Value="6"/>
|
<UsageCount Value="5"/>
|
||||||
</Unit40>
|
</Unit40>
|
||||||
<Unit41>
|
<Unit41>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\extendedstrings.pas"/>
|
<Filename Value="..\..\..\LazSVN\lcl\extendedstrings.pas"/>
|
||||||
<UnitName Value="ExtendedStrings"/>
|
<UnitName Value="ExtendedStrings"/>
|
||||||
<CursorPos X="34" Y="42"/>
|
<CursorPos X="34" Y="42"/>
|
||||||
<TopLine Value="31"/>
|
<TopLine Value="31"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit41>
|
</Unit41>
|
||||||
<Unit42>
|
<Unit42>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\widgetset\wsreferences.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\widgetset\wsreferences.pp"/>
|
||||||
<UnitName Value="WSReferences"/>
|
<UnitName Value="WSReferences"/>
|
||||||
<CursorPos X="14" Y="90"/>
|
<CursorPos X="14" Y="90"/>
|
||||||
<TopLine Value="71"/>
|
<TopLine Value="71"/>
|
||||||
<UsageCount Value="8"/>
|
<UsageCount Value="7"/>
|
||||||
</Unit42>
|
</Unit42>
|
||||||
<Unit43>
|
<Unit43>
|
||||||
<Filename Value="C:\Lazarus\LazSVN\lcl\lresources.pp"/>
|
<Filename Value="..\..\..\LazSVN\lcl\lresources.pp"/>
|
||||||
<UnitName Value="LResources"/>
|
<UnitName Value="LResources"/>
|
||||||
<CursorPos X="1" Y="1"/>
|
<CursorPos X="1" Y="1"/>
|
||||||
<TopLine Value="1"/>
|
<TopLine Value="1"/>
|
||||||
<UsageCount Value="9"/>
|
<UsageCount Value="8"/>
|
||||||
</Unit43>
|
</Unit43>
|
||||||
|
<Unit44>
|
||||||
|
<Filename Value="..\..\..\LazSVN\components\synedit\synhighlighterpas.pp"/>
|
||||||
|
<UnitName Value="SynHighlighterPas"/>
|
||||||
|
<CursorPos X="32" Y="2760"/>
|
||||||
|
<TopLine Value="2741"/>
|
||||||
|
<UsageCount Value="10"/>
|
||||||
|
</Unit44>
|
||||||
</Units>
|
</Units>
|
||||||
<JumpHistory Count="29" HistoryIndex="28">
|
<JumpHistory Count="5" HistoryIndex="4">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="Valistus.lpr"/>
|
||||||
<Caret Line="411" Column="36" TopLine="396"/>
|
<Caret Line="17" Column="21" TopLine="1"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
<Filename Value="v_ideCodeInsight.pas"/>
|
||||||
<Caret Line="43" Column="33" TopLine="24"/>
|
<Caret Line="19" Column="31" TopLine="4"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="main.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="414" Column="34" TopLine="396"/>
|
<Caret Line="414" Column="114" TopLine="408"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="104" Column="25" TopLine="85"/>
|
<Caret Line="27" Column="29" TopLine="10"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
<Filename Value="main.pas"/>
|
||||||
<Caret Line="705" Column="21" TopLine="686"/>
|
<Caret Line="26" Column="79" TopLine="10"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
|
||||||
<Filename Value="main.pas"/>
|
|
||||||
<Caret Line="414" Column="37" TopLine="396"/>
|
|
||||||
</Position6>
|
|
||||||
<Position7>
|
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
|
||||||
<Caret Line="104" Column="21" TopLine="85"/>
|
|
||||||
</Position7>
|
|
||||||
<Position8>
|
|
||||||
<Filename Value="v_ideCodeParser.pas"/>
|
|
||||||
<Caret Line="705" Column="21" TopLine="686"/>
|
|
||||||
</Position8>
|
|
||||||
<Position9>
|
|
||||||
<Filename Value="main.pas"/>
|
|
||||||
<Caret Line="419" Column="135" TopLine="393"/>
|
|
||||||
</Position9>
|
|
||||||
<Position10>
|
|
||||||
<Filename Value="main.pas"/>
|
|
||||||
<Caret Line="380" Column="69" TopLine="361"/>
|
|
||||||
</Position10>
|
|
||||||
<Position11>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="528" Column="6" TopLine="492"/>
|
|
||||||
</Position11>
|
|
||||||
<Position12>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="520" Column="26" TopLine="492"/>
|
|
||||||
</Position12>
|
|
||||||
<Position13>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="529" Column="49" TopLine="513"/>
|
|
||||||
</Position13>
|
|
||||||
<Position14>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="530" Column="25" TopLine="514"/>
|
|
||||||
</Position14>
|
|
||||||
<Position15>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="82" Column="18" TopLine="63"/>
|
|
||||||
</Position15>
|
|
||||||
<Position16>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="88" Column="49" TopLine="63"/>
|
|
||||||
</Position16>
|
|
||||||
<Position17>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="532" Column="49" TopLine="516"/>
|
|
||||||
</Position17>
|
|
||||||
<Position18>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="548" Column="37" TopLine="516"/>
|
|
||||||
</Position18>
|
|
||||||
<Position19>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="530" Column="24" TopLine="516"/>
|
|
||||||
</Position19>
|
|
||||||
<Position20>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="79" Column="28" TopLine="63"/>
|
|
||||||
</Position20>
|
|
||||||
<Position21>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="79" Column="28" TopLine="63"/>
|
|
||||||
</Position21>
|
|
||||||
<Position22>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="534" Column="53" TopLine="516"/>
|
|
||||||
</Position22>
|
|
||||||
<Position23>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="556" Column="11" TopLine="529"/>
|
|
||||||
</Position23>
|
|
||||||
<Position24>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="532" Column="10" TopLine="513"/>
|
|
||||||
</Position24>
|
|
||||||
<Position25>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="537" Column="25" TopLine="518"/>
|
|
||||||
</Position25>
|
|
||||||
<Position26>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="544" Column="11" TopLine="525"/>
|
|
||||||
</Position26>
|
|
||||||
<Position27>
|
|
||||||
<Filename Value="main.pas"/>
|
|
||||||
<Caret Line="434" Column="12" TopLine="403"/>
|
|
||||||
</Position27>
|
|
||||||
<Position28>
|
|
||||||
<Filename Value="main.pas"/>
|
|
||||||
<Caret Line="437" Column="9" TopLine="403"/>
|
|
||||||
</Position28>
|
|
||||||
<Position29>
|
|
||||||
<Filename Value="v_autocompleteform.pas"/>
|
|
||||||
<Caret Line="574" Column="46" TopLine="543"/>
|
|
||||||
</Position29>
|
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
Binary file not shown.
@ -597,12 +597,13 @@ object MainForm: TMainForm
|
|||||||
Lines.Strings = (
|
Lines.Strings = (
|
||||||
'program New;'
|
'program New;'
|
||||||
''
|
''
|
||||||
'procedure c(d); forward;'
|
'procedure TestingTest(a: Integer = 2; b: string = ''test'');'
|
||||||
''
|
|
||||||
'function a(b): Boolean;'
|
|
||||||
'begin'
|
'begin'
|
||||||
'end;'
|
'end;'
|
||||||
''
|
''
|
||||||
|
'var'
|
||||||
|
' TIA: array of Integer = (1, 2, 3);'
|
||||||
|
''
|
||||||
'type'
|
'type'
|
||||||
' x = (thiz, iz, enum);'
|
' x = (thiz, iz, enum);'
|
||||||
' y = set of x;'
|
' y = set of x;'
|
||||||
@ -621,7 +622,8 @@ object MainForm: TMainForm
|
|||||||
' xx: x;'
|
' xx: x;'
|
||||||
' yy: y;'
|
' yy: y;'
|
||||||
' zz: TIntegerArray;'
|
' zz: TIntegerArray;'
|
||||||
' i: Integer;'
|
' i: Integer = 123;'
|
||||||
|
' stringetiestring: string = ''test'';'
|
||||||
'begin'
|
'begin'
|
||||||
' with a, b[zz[i]], c do'
|
' with a, b[zz[i]], c do'
|
||||||
' d := ''test'';'
|
' d := ''test'';'
|
||||||
|
@ -426,15 +426,15 @@ begin
|
|||||||
begin
|
begin
|
||||||
if (d.Owner is TciProcedureDeclaration) and (not (d is TciProcedureDeclaration)) then
|
if (d.Owner is TciProcedureDeclaration) and (not (d is TciProcedureDeclaration)) then
|
||||||
d := d.Owner;
|
d := d.Owner;
|
||||||
with TParamHint.Create(Self) do
|
//with TParamHint.Create(Self) do
|
||||||
begin
|
//begin
|
||||||
if (TciProcedureDeclaration(d).SynParams <> '') then
|
if (TciProcedureDeclaration(d).SynParams <> '') then
|
||||||
//txtDebug.Lines.Add(TciProcedureDeclaration(d).SynParams)
|
txtDebug.Lines.Add(TciProcedureDeclaration(d).SynParams)
|
||||||
Caption := TciProcedureDeclaration(d).SynParams
|
//Caption := TciProcedureDeclaration(d).SynParams
|
||||||
else
|
else
|
||||||
//txtDebug.Lines.Add('<no parameters expected>');
|
txtDebug.Lines.Add('<no parameters expected>');
|
||||||
Caption := '<no parameters expected>';
|
//Caption := '<no parameters expected>';
|
||||||
end;
|
//end;
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
FreeAndNil(ms);
|
FreeAndNil(ms);
|
||||||
|
@ -269,8 +269,8 @@ begin
|
|||||||
else
|
else
|
||||||
fDeclarationAtPos := nil;
|
fDeclarationAtPos := nil;
|
||||||
|
|
||||||
if (fDeclarationatPos is TciJunk) and (fDeclarationatPos.Owner <> nil) {and (fDeclarationatPos.EndPos = fPos)} then
|
(*if (fDeclarationatPos is TciJunk) and (fDeclarationatPos.Owner <> nil) {and (fDeclarationatPos.EndPos = fPos)} then
|
||||||
fDeclarationAtPos := fDeclarationatPos.Owner;
|
fDeclarationAtPos := fDeclarationatPos.Owner;*)
|
||||||
|
|
||||||
if (fDeclarationAtPos <> nil) and (not (fDeclarationAtPos is TciJunk)) then
|
if (fDeclarationAtPos <> nil) and (not (fDeclarationAtPos is TciJunk)) then
|
||||||
begin
|
begin
|
||||||
|
@ -1024,7 +1024,7 @@ begin
|
|||||||
Lexer.Next;
|
Lexer.Next;
|
||||||
if Lexer.IsJunk and (not InDeclaration(TciJunk)) then
|
if Lexer.IsJunk and (not InDeclaration(TciJunk)) then
|
||||||
begin
|
begin
|
||||||
if (not InDeclaration(nil)) then
|
{if (not InDeclaration(nil)) then
|
||||||
PushStack(TciJunk);
|
PushStack(TciJunk);
|
||||||
while (Lexer.IsJunk) do
|
while (Lexer.IsJunk) do
|
||||||
begin
|
begin
|
||||||
@ -1044,6 +1044,18 @@ begin
|
|||||||
fStack.Top.Free;
|
fStack.Top.Free;
|
||||||
fStack.Pop;
|
fStack.Pop;
|
||||||
end;
|
end;
|
||||||
|
end;}
|
||||||
|
|
||||||
|
while Lexer.IsJunk do
|
||||||
|
begin
|
||||||
|
if (Lexer.TokenID in [tokAnsiComment, tokBorComment, tokSlashesComment]) then
|
||||||
|
begin
|
||||||
|
if (not InDeclaration(TciJunk)) then
|
||||||
|
PushStack(TciJunk);
|
||||||
|
end
|
||||||
|
else if InDeclaration(TciJunk) then
|
||||||
|
PopStack;
|
||||||
|
Lexer.Next;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
@ -25,6 +25,9 @@ object ScriptFrame: TScriptFrame
|
|||||||
OnDragDrop = SynEditDragDrop
|
OnDragDrop = SynEditDragDrop
|
||||||
OnDragOver = SynEditDragOver
|
OnDragOver = SynEditDragOver
|
||||||
OnKeyDown = SynEditKeyDown
|
OnKeyDown = SynEditKeyDown
|
||||||
|
OnKeyPress = SynEditKeyPress
|
||||||
|
OnClickLink = SynEditClickLink
|
||||||
|
OnMouseLink = SynEditMouseLink
|
||||||
Gutter.Width = 57
|
Gutter.Width = 57
|
||||||
Gutter.MouseActions = <
|
Gutter.MouseActions = <
|
||||||
item
|
item
|
||||||
|
@ -9,149 +9,150 @@ LazarusResources.Add('TScriptFrame','FORMDATA',[
|
|||||||
+'h'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10
|
+'h'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10
|
||||||
+'ParentFont'#8#9'PopupMenu'#7#17'Form1.ScriptPopup'#8'TabOrder'#2#0#10'OnDra'
|
+'ParentFont'#8#9'PopupMenu'#7#17'Form1.ScriptPopup'#8'TabOrder'#2#0#10'OnDra'
|
||||||
+'gDrop'#7#15'SynEditDragDrop'#10'OnDragOver'#7#15'SynEditDragOver'#9'OnKeyDo'
|
+'gDrop'#7#15'SynEditDragDrop'#10'OnDragOver'#7#15'SynEditDragOver'#9'OnKeyDo'
|
||||||
+'wn'#7#14'SynEditKeyDown'#12'Gutter.Width'#2'9'#19'Gutter.MouseActions'#14#1
|
+'wn'#7#14'SynEditKeyDown'#10'OnKeyPress'#7#15'SynEditKeyPress'#11'OnClickLin'
|
||||||
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'cc'
|
+'k'#7#16'SynEditClickLink'#11'OnMouseLink'#7#16'SynEditMouseLink'#12'Gutter.'
|
||||||
+'Any'#8'ClickDir'#7#6'cdDown'#7'Command'#2#13#9'MoveCaret'#8#6'Option'#2#0#8
|
+'Width'#2'9'#19'Gutter.MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6
|
||||||
+'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10
|
+'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Com'
|
||||||
+'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'
|
+'mand'#2#13#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9
|
||||||
+#8#6'Option'#2#0#8'Priority'#2#0#0#0#11'Highlighter'#7#17'SynFreePascalSyn1'
|
+'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'Click'
|
||||||
+#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command'#7#7
|
+'Dir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0
|
||||||
+'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollUp'#8'ShortCut'#3'&@'
|
+#0#0#11'Highlighter'#7#17'SynFreePascalSyn1'#10'Keystrokes'#14#1#7'Command'#7
|
||||||
+#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Command'#7#9'ecSelDown'#8
|
+#4'ecUp'#8'ShortCut'#2'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7
|
||||||
+'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1#7'C'
|
+'Command'#7#10'ecScrollUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'Sh'
|
||||||
+'ommand'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'ShortC'
|
+'ortCut'#2'('#0#1#7'Command'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'
|
||||||
+'ut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3'%@'#0#1#7'Command'#7
|
+#7#12'ecScrollDown'#8'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'
|
||||||
+#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7'ecRight'#8'ShortCut'
|
+#2'%'#0#1#7'Command'#7#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ec'
|
||||||
+#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''' '#0#1#7'Command'#7#11
|
+'WordLeft'#8'ShortCut'#3'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3
|
||||||
+'ecWordRight'#8'ShortCut'#3'''@'#0#1#7'Command'#7#14'ecSelWordRight'#8'Short'
|
+'%`'#0#1#7'Command'#7#7'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSel'
|
||||||
+'Cut'#3'''`'#0#1#7'Command'#7#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'Command'
|
+'Right'#8'ShortCut'#3''' '#0#1#7'Command'#7#11'ecWordRight'#8'ShortCut'#3''''
|
||||||
+#7#13'ecSelPageDown'#8'ShortCut'#3'" '#0#1#7'Command'#7#12'ecPageBottom'#8'S'
|
+'@'#0#1#7'Command'#7#14'ecSelWordRight'#8'ShortCut'#3'''`'#0#1#7'Command'#7
|
||||||
+'hortCut'#3'"@'#0#1#7'Command'#7#15'ecSelPageBottom'#8'ShortCut'#3'"`'#0#1#7
|
+#10'ecPageDown'#8'ShortCut'#2'"'#0#1#7'Command'#7#13'ecSelPageDown'#8'ShortC'
|
||||||
+'Command'#7#8'ecPageUp'#8'ShortCut'#2'!'#0#1#7'Command'#7#11'ecSelPageUp'#8
|
+'ut'#3'" '#0#1#7'Command'#7#12'ecPageBottom'#8'ShortCut'#3'"@'#0#1#7'Command'
|
||||||
+'ShortCut'#3'! '#0#1#7'Command'#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1#7'Comma'
|
+#7#15'ecSelPageBottom'#8'ShortCut'#3'"`'#0#1#7'Command'#7#8'ecPageUp'#8'Shor'
|
||||||
+'nd'#7#12'ecSelPageTop'#8'ShortCut'#3'!`'#0#1#7'Command'#7#11'ecLineStart'#8
|
+'tCut'#2'!'#0#1#7'Command'#7#11'ecSelPageUp'#8'ShortCut'#3'! '#0#1#7'Command'
|
||||||
+'ShortCut'#2'$'#0#1#7'Command'#7#14'ecSelLineStart'#8'ShortCut'#3'$ '#0#1#7
|
+#7#9'ecPageTop'#8'ShortCut'#3'!@'#0#1#7'Command'#7#12'ecSelPageTop'#8'ShortC'
|
||||||
+'Command'#7#11'ecEditorTop'#8'ShortCut'#3'$@'#0#1#7'Command'#7#14'ecSelEdito'
|
+'ut'#3'!`'#0#1#7'Command'#7#11'ecLineStart'#8'ShortCut'#2'$'#0#1#7'Command'#7
|
||||||
+'rTop'#8'ShortCut'#3'$`'#0#1#7'Command'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7
|
+#14'ecSelLineStart'#8'ShortCut'#3'$ '#0#1#7'Command'#7#11'ecEditorTop'#8'Sho'
|
||||||
+'Command'#7#12'ecSelLineEnd'#8'ShortCut'#3'# '#0#1#7'Command'#7#14'ecEditorB'
|
+'rtCut'#3'$@'#0#1#7'Command'#7#14'ecSelEditorTop'#8'ShortCut'#3'$`'#0#1#7'Co'
|
||||||
+'ottom'#8'ShortCut'#3'#@'#0#1#7'Command'#7#17'ecSelEditorBottom'#8'ShortCut'
|
+'mmand'#7#9'ecLineEnd'#8'ShortCut'#2'#'#0#1#7'Command'#7#12'ecSelLineEnd'#8
|
||||||
+#3'#`'#0#1#7'Command'#7#12'ecToggleMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6
|
+'ShortCut'#3'# '#0#1#7'Command'#7#14'ecEditorBottom'#8'ShortCut'#3'#@'#0#1#7
|
||||||
+'ecCopy'#8'ShortCut'#3'-@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1
|
+'Command'#7#17'ecSelEditorBottom'#8'ShortCut'#3'#`'#0#1#7'Command'#7#12'ecTo'
|
||||||
+#7'Command'#7#12'ecDeleteChar'#8'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8
|
+'ggleMode'#8'ShortCut'#2'-'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'-@'#0#1
|
||||||
+'ShortCut'#3'. '#0#1#7'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7
|
+#7'Command'#7#7'ecPaste'#8'ShortCut'#3'- '#0#1#7'Command'#7#12'ecDeleteChar'
|
||||||
+'Command'#7#16'ecDeleteLastChar'#8'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDe'
|
+#8'ShortCut'#2'.'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'. '#0#1#7'Command'
|
||||||
+'leteLastWord'#8'ShortCut'#3#8'@'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8
|
+#7#16'ecDeleteLastChar'#8'ShortCut'#2#8#0#1#7'Command'#7#16'ecDeleteLastChar'
|
||||||
+#128#0#0#0#1#7'Command'#7#6'ecRedo'#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7
|
+#8'ShortCut'#3#8' '#0#1#7'Command'#7#16'ecDeleteLastWord'#8'ShortCut'#3#8'@'
|
||||||
+#11'ecLineBreak'#8'ShortCut'#2#13#0#1#7'Command'#7#11'ecSelectAll'#8'ShortCu'
|
+#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#7#6'ecRed'
|
||||||
+'t'#3'A@'#0#1#7'Command'#7#6'ecCopy'#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'e'
|
+'o'#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#2#13
|
||||||
+'cBlockIndent'#8'ShortCut'#3'I@'#0#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'
|
+#0#1#7'Command'#7#11'ecSelectAll'#8'ShortCut'#3'A@'#0#1#7'Command'#7#6'ecCop'
|
||||||
+#3'M@'#0#1#7'Command'#7#15'ecBlockUnindent'#8'ShortCut'#3'U@'#0#1#7'Command'
|
+'y'#8'ShortCut'#3'C@'#0#1#7'Command'#7#13'ecBlockIndent'#8'ShortCut'#3'I@'#0
|
||||||
+#7#7'ecPaste'#8'ShortCut'#3'V@'#0#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0
|
+#1#7'Command'#7#11'ecLineBreak'#8'ShortCut'#3'M@'#0#1#7'Command'#7#15'ecBloc'
|
||||||
+#1#7'Command'#7#12'ecDeleteLine'#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDel'
|
+'kUnindent'#8'ShortCut'#3'U@'#0#1#7'Command'#7#7'ecPaste'#8'ShortCut'#3'V@'#0
|
||||||
+'eteEOL'#8'ShortCut'#3'Y`'#0#1#7'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7
|
+#1#7'Command'#7#5'ecCut'#8'ShortCut'#3'X@'#0#1#7'Command'#7#12'ecDeleteLine'
|
||||||
+'Command'#7#6'ecRedo'#8'ShortCut'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8
|
+#8'ShortCut'#3'Y@'#0#1#7'Command'#7#11'ecDeleteEOL'#8'ShortCut'#3'Y`'#0#1#7
|
||||||
+'ShortCut'#3'0@'#0#1#7'Command'#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7
|
+'Command'#7#6'ecUndo'#8'ShortCut'#3'Z@'#0#1#7'Command'#7#6'ecRedo'#8'ShortCu'
|
||||||
+'Command'#7#13'ecGotoMarker2'#8'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMa'
|
+'t'#3'Z`'#0#1#7'Command'#7#13'ecGotoMarker0'#8'ShortCut'#3'0@'#0#1#7'Command'
|
||||||
+'rker3'#8'ShortCut'#3'3@'#0#1#7'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4'
|
+#7#13'ecGotoMarker1'#8'ShortCut'#3'1@'#0#1#7'Command'#7#13'ecGotoMarker2'#8
|
||||||
+'@'#0#1#7'Command'#7#13'ecGotoMarker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13
|
+'ShortCut'#3'2@'#0#1#7'Command'#7#13'ecGotoMarker3'#8'ShortCut'#3'3@'#0#1#7
|
||||||
+'ecGotoMarker6'#8'ShortCut'#3'6@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'Short'
|
+'Command'#7#13'ecGotoMarker4'#8'ShortCut'#3'4@'#0#1#7'Command'#7#13'ecGotoMa'
|
||||||
+'Cut'#3'7@'#0#1#7'Command'#7#13'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Comma'
|
+'rker5'#8'ShortCut'#3'5@'#0#1#7'Command'#7#13'ecGotoMarker6'#8'ShortCut'#3'6'
|
||||||
+'nd'#7#13'ecGotoMarker9'#8'ShortCut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'
|
+'@'#0#1#7'Command'#7#13'ecGotoMarker7'#8'ShortCut'#3'7@'#0#1#7'Command'#7#13
|
||||||
+#8'ShortCut'#3'0`'#0#1#7'Command'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7
|
+'ecGotoMarker8'#8'ShortCut'#3'8@'#0#1#7'Command'#7#13'ecGotoMarker9'#8'Short'
|
||||||
+'Command'#7#12'ecSetMarker2'#8'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMark'
|
+'Cut'#3'9@'#0#1#7'Command'#7#12'ecSetMarker0'#8'ShortCut'#3'0`'#0#1#7'Comman'
|
||||||
+'er3'#8'ShortCut'#3'3`'#0#1#7'Command'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0
|
+'d'#7#12'ecSetMarker1'#8'ShortCut'#3'1`'#0#1#7'Command'#7#12'ecSetMarker2'#8
|
||||||
+#1#7'Command'#7#12'ecSetMarker5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSet'
|
+'ShortCut'#3'2`'#0#1#7'Command'#7#12'ecSetMarker3'#8'ShortCut'#3'3`'#0#1#7'C'
|
||||||
+'Marker6'#8'ShortCut'#3'6`'#0#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3
|
+'ommand'#7#12'ecSetMarker4'#8'ShortCut'#3'4`'#0#1#7'Command'#7#12'ecSetMarke'
|
||||||
+'7`'#0#1#7'Command'#7#12'ecSetMarker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12
|
+'r5'#8'ShortCut'#3'5`'#0#1#7'Command'#7#12'ecSetMarker6'#8'ShortCut'#3'6`'#0
|
||||||
+'ecSetMarker9'#8'ShortCut'#3'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCu'
|
+#1#7'Command'#7#12'ecSetMarker7'#8'ShortCut'#3'7`'#0#1#7'Command'#7#12'ecSet'
|
||||||
+'t'#4'1'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0
|
+'Marker8'#8'ShortCut'#3'8`'#0#1#7'Command'#7#12'ecSetMarker9'#8'ShortCut'#3
|
||||||
,#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12
|
,'9`'#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'1'#160#0#0#0#1#7'Comman'
|
||||||
+'EcFoldLevel1'#8'ShortCut'#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8
|
+'d'#7#12'EcFoldLevel2'#8'ShortCut'#4'2'#160#0#0#0#1#7'Command'#7#12'EcFoldLe'
|
||||||
+'ShortCut'#4'5'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'
|
+'vel1'#8'ShortCut'#4'3'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'
|
||||||
+#160#0#0#0#1#7'Command'#7#12'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Co'
|
+#4'4'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel1'#8'ShortCut'#4'5'#160#0#0#0#1
|
||||||
+'mmand'#7#12'EcFoldLevel8'#8'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFo'
|
+#7'Command'#7#12'EcFoldLevel6'#8'ShortCut'#4'6'#160#0#0#0#1#7'Command'#7#12
|
||||||
+'ldLevel9'#8'ShortCut'#4'9'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'Shor'
|
+'EcFoldLevel7'#8'ShortCut'#4'7'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel8'#8
|
||||||
+'tCut'#4'0'#160#0#0#0#1#7'Command'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0
|
+'ShortCut'#4'8'#160#0#0#0#1#7'Command'#7#12'EcFoldLevel9'#8'ShortCut'#4'9'
|
||||||
+#0#0#1#7'Command'#7#15'EcUnFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Comma'
|
+#160#0#0#0#1#7'Command'#7#12'EcFoldLevel0'#8'ShortCut'#4'0'#160#0#0#0#1#7'Co'
|
||||||
+'nd'#7#18'EcToggleMarkupWord'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'e'
|
+'mmand'#7#13'EcFoldCurrent'#8'ShortCut'#4'-'#160#0#0#0#1#7'Command'#7#15'EcU'
|
||||||
+'cNormalSelect'#8'ShortCut'#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'Shor'
|
+'nFoldCurrent'#8'ShortCut'#4'+'#160#0#0#0#1#7'Command'#7#18'EcToggleMarkupWo'
|
||||||
+'tCut'#3'C`'#0#1#7'Command'#7#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Comma'
|
+'rd'#8'ShortCut'#4'M'#128#0#0#0#1#7'Command'#7#14'ecNormalSelect'#8'ShortCut'
|
||||||
+'nd'#7#5'ecTab'#8'ShortCut'#2#9#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3
|
+#3'N`'#0#1#7'Command'#7#14'ecColumnSelect'#8'ShortCut'#3'C`'#0#1#7'Command'#7
|
||||||
+#9' '#0#1#7'Command'#7#14'ecMatchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7
|
+#12'ecLineSelect'#8'ShortCut'#3'L`'#0#1#7'Command'#7#5'ecTab'#8'ShortCut'#2#9
|
||||||
+#10'ecColSelUp'#8'ShortCut'#4'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8
|
+#0#1#7'Command'#7#10'ecShiftTab'#8'ShortCut'#3#9' '#0#1#7'Command'#7#14'ecMa'
|
||||||
+'ShortCut'#4'('#160#0#0#0#1#7'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'
|
+'tchBracket'#8'ShortCut'#3'B`'#0#1#7'Command'#7#10'ecColSelUp'#8'ShortCut'#4
|
||||||
+#160#0#0#0#1#7'Command'#7#13'ecColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7
|
+'&'#160#0#0#0#1#7'Command'#7#12'ecColSelDown'#8'ShortCut'#4'('#160#0#0#0#1#7
|
||||||
+'Command'#7#16'ecColSelPageDown'#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18
|
+'Command'#7#12'ecColSelLeft'#8'ShortCut'#4'%'#160#0#0#0#1#7'Command'#7#13'ec'
|
||||||
+'ecColSelPageBottom'#8'ShortCut'#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPa'
|
+'ColSelRight'#8'ShortCut'#4''''#160#0#0#0#1#7'Command'#7#16'ecColSelPageDown'
|
||||||
+'geUp'#8'ShortCut'#4'!'#160#0#0#0#1#7'Command'#7#15'ecColSelPageTop'#8'Short'
|
+#8'ShortCut'#4'"'#160#0#0#0#1#7'Command'#7#18'ecColSelPageBottom'#8'ShortCut'
|
||||||
+'Cut'#4'!'#224#0#0#0#1#7'Command'#7#17'ecColSelLineStart'#8'ShortCut'#4'$'
|
+#4'"'#224#0#0#0#1#7'Command'#7#14'ecColSelPageUp'#8'ShortCut'#4'!'#160#0#0#0
|
||||||
+#160#0#0#0#1#7'Command'#7#15'ecColSelLineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7
|
+#1#7'Command'#7#15'ecColSelPageTop'#8'ShortCut'#4'!'#224#0#0#0#1#7'Command'#7
|
||||||
+'Command'#7#17'ecColSelEditorTop'#8'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7
|
+#17'ecColSelLineStart'#8'ShortCut'#4'$'#160#0#0#0#1#7'Command'#7#15'ecColSel'
|
||||||
+#20'ecColSelEditorBottom'#8'ShortCut'#4'#'#224#0#0#0#0#12'MouseActions'#14#1
|
+'LineEnd'#8'ShortCut'#4'#'#160#0#0#0#1#7'Command'#7#17'ecColSelEditorTop'#8
|
||||||
+#5'Shift'#11#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10
|
+'ShortCut'#4'$'#224#0#0#0#1#7'Command'#7#20'ecColSelEditorBottom'#8'ShortCut'
|
||||||
+'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#1#9'MoveCare'
|
+#4'#'#224#0#0#0#0#12'MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#7'ssSh'
|
||||||
+'t'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'
|
+'ift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickD'
|
||||||
+#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'
|
+'ir'#7#6'cdDown'#7'Command'#2#1#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0
|
||||||
+#8'ClickDir'#7#6'cdDown'#7'Command'#2#1#9'MoveCaret'#9#6'Option'#2#1#8'Prior'
|
+#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'
|
||||||
+'ity'#2#0#0#1#5'Shift'#11#5'ssAlt'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6
|
+#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'
|
||||||
|
+#2#1#9'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#5'ssAlt'#0
|
||||||
|
+#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7
|
||||||
|
+#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'
|
||||||
|
+#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#5'ssAlt'#0#9'ShiftMask'#11#7
|
||||||
|
+'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'Cl'
|
||||||
|
+'ickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'#2#1#8'Priority'
|
||||||
|
+#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCoun'
|
||||||
|
+'t'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Opt'
|
||||||
|
+'ion'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6
|
||||||
|
+'mbLeft'#10'ClickCount'#7#8'ccDouble'#8'ClickDir'#7#6'cdDown'#7'Command'#2#6
|
||||||
|
+#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'
|
||||||
|
+#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccTriple'#8'ClickDir'#7#6'cdD'
|
||||||
|
+'own'#7'Command'#2#7#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shif'
|
||||||
|
+'t'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#6'ccQuad'#8
|
||||||
|
+'ClickDir'#7#6'cdDown'#7'Command'#2#8#9'MoveCaret'#9#6'Option'#2#0#8'Priorit'
|
||||||
|
+'y'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#8'mbMiddle'#10'Click'
|
||||||
|
+'Count'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#10#9'MoveCaret'#9
|
||||||
|
+#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#6'ssCtrl'#0#9'ShiftMask'#11#7
|
||||||
|
+'ssShift'#5'ssAlt'#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSi'
|
||||||
|
+'ngle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#11#9'MoveCaret'#8#6'Option'#2#0#8
|
||||||
|
+'Priority'#2#0#0#0#15'MouseSelActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6
|
||||||
+'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7
|
+'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7
|
||||||
+'Command'#2#3#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7
|
+'Command'#2#9#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#13'Lines.Stri'
|
||||||
+'ssShift'#5'ssAlt'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbL'
|
+'ngs'#1#6#12'program new;'#6#5'begin'#6#4'end.'#0#7'Options'#11#12'eoAutoInd'
|
||||||
+'eft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9
|
+'ent'#11'eoGroupUndo'#15'eoScrollPastEol'#11'eoSmartTabs'#11'eoTabIndent'#14
|
||||||
+'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11
|
+'eoTabsToSpaces'#20'eoTrimTrailingSpaces'#18'eoBracketHighlight'#0#21'Bracke'
|
||||||
+#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'
|
+'tHighlightStyle'#7#8'sbhsBoth'#8'OnChange'#7#13'SynEditChange'#16'OnProcess'
|
||||||
+#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11
|
+'Command'#7#21'SynEditProcessCommand'#20'OnProcessUserCommand'#7#25'SynEditP'
|
||||||
+#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccDouble'#8'Cl'
|
+'rocessUserCommand'#19'OnSpecialLineColors'#7#24'SynEditSpecialLineColors'#14
|
||||||
+'ickDir'#7#6'cdDown'#7'Command'#2#6#9'MoveCaret'#9#6'Option'#2#0#8'Priority'
|
+'OnStatusChange'#7#19'SynEditStatusChange'#0#244#18'TSynGutterPartList'#0#0
|
||||||
+#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'
|
+#15'TSynGutterMarks'#0#5'Width'#2#23#0#0#20'TSynGutterLineNumber'#0#5'Width'
|
||||||
+#7#8'ccTriple'#8'ClickDir'#7#6'cdDown'#7'Command'#2#7#9'MoveCaret'#9#6'Optio'
|
+#2#17#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9'clBtnFace'#21'Mark'
|
||||||
+'n'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mb'
|
+'upInfo.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30'ShowOnlyLineNumbersMul'
|
||||||
+'Left'#10'ClickCount'#7#6'ccQuad'#8'ClickDir'#7#6'cdDown'#7'Command'#2#8#9'M'
|
+'tiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TSynGutterChanges'#0
|
||||||
+'oveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11
|
+#5'Width'#2#4#13'ModifiedColor'#4#252#233#0#0#10'SavedColor'#7#7'clGreen'#0#0
|
||||||
+#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDo'
|
,#19'TSynGutterSeparator'#0#5'Width'#2#2#0#0#21'TSynGutterCodeFolding'#0#12'M'
|
||||||
+'wn'#7'Command'#2#10#9'MoveCaret'#9#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shif'
|
+'ouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10
|
||||||
+'t'#11#6'ssCtrl'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#6'ssCtrl'#0#6'Button'
|
+'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#16#9'MoveCaret'
|
||||||
+#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2
|
+#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#7'ssShift'
|
||||||
+#11#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#15'MouseSelActions'#14#1
|
|
||||||
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'cc'
|
|
||||||
+'Single'#8'ClickDir'#7#6'cdDown'#7'Command'#2#9#9'MoveCaret'#8#6'Option'#2#0
|
|
||||||
+#8'Priority'#2#0#0#0#13'Lines.Strings'#1#6#12'program new;'#6#5'begin'#6#4'e'
|
|
||||||
+'nd.'#0#7'Options'#11#12'eoAutoIndent'#11'eoGroupUndo'#15'eoScrollPastEol'#11
|
|
||||||
+'eoSmartTabs'#11'eoTabIndent'#14'eoTabsToSpaces'#20'eoTrimTrailingSpaces'#18
|
|
||||||
+'eoBracketHighlight'#0#21'BracketHighlightStyle'#7#8'sbhsBoth'#8'OnChange'#7
|
|
||||||
+#13'SynEditChange'#16'OnProcessCommand'#7#21'SynEditProcessCommand'#20'OnPro'
|
|
||||||
+'cessUserCommand'#7#25'SynEditProcessUserCommand'#19'OnSpecialLineColors'#7
|
|
||||||
+#24'SynEditSpecialLineColors'#14'OnStatusChange'#7#19'SynEditStatusChange'#0
|
|
||||||
+#244#18'TSynGutterPartList'#0#0#15'TSynGutterMarks'#0#5'Width'#2#23#0#0#20'T'
|
|
||||||
+'SynGutterLineNumber'#0#5'Width'#2#17#12'MouseActions'#14#0#21'MarkupInfo.Ba'
|
|
||||||
+'ckground'#7#9'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNone'#10'DigitCoun'
|
|
||||||
+'t'#2#2#30'ShowOnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZero'
|
|
||||||
+'s'#8#0#0#17'TSynGutterChanges'#0#5'Width'#2#4#13'ModifiedColor'#4#252#233#0
|
|
||||||
+#0#10'SavedColor'#7#7'clGreen'#0#0#19'TSynGutterSeparator'#0#5'Width'#2#2#0#0
|
|
||||||
+#21'TSynGutterCodeFolding'#0#12'MouseActions'#14#1#5'Shift'#11#0#9'ShiftMask'
|
|
||||||
,#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#4'cd'
|
|
||||||
+'Up'#7'Command'#2#16#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shif'
|
|
||||||
+'t'#11#0#9'ShiftMask'#11#7'ssShift'#0#6'Button'#7#8'mbMiddle'#10'ClickCount'
|
|
||||||
+#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6'Option'
|
|
||||||
+#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'
|
|
||||||
+#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'
|
+#0#6'Button'#7#8'mbMiddle'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'
|
||||||
+#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11
|
+#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11
|
||||||
+#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'Click'
|
+#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#0#6'Button'#7#8'mbMiddle'#10'ClickC'
|
||||||
+'Dir'#7#6'cdDown'#7'Command'#2#0#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0
|
+'ount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6'O'
|
||||||
+#0#0#21'MarkupInfo.Background'#7#6'clNone'#21'MarkupInfo.Foreground'#7#6'clG'
|
+'ption'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6
|
||||||
+'ray'#20'MouseActionsExpanded'#14#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'
|
+'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#0#9
|
||||||
+#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2
|
+'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#21'MarkupInfo.Background'#7#6
|
||||||
+#14#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#0#21'MouseActionsCollapse'
|
+'clNone'#21'MarkupInfo.Foreground'#7#6'clGray'#20'MouseActionsExpanded'#14#1
|
||||||
+'d'#14#1#5'Shift'#11#6'ssCtrl'#0#9'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'm'
|
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'cc'
|
||||||
+'bLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#15#9
|
+'Any'#8'ClickDir'#7#6'cdDown'#7'Command'#2#14#9'MoveCaret'#8#6'Option'#2#0#8
|
||||||
+'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11
|
+'Priority'#2#0#0#0#21'MouseActionsCollapsed'#14#1#5'Shift'#11#6'ssCtrl'#0#9
|
||||||
+#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6
|
+'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8
|
||||||
+'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2#1#8'Priority'#2#0#0#0#0#0
|
+'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2#0#8'Priori'
|
||||||
+#0#0#17'TSynFreePascalSyn'#17'SynFreePascalSyn1'#7'Enabled'#8#23'CommentAttr'
|
+'ty'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'
|
||||||
+'i.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#26'Identifi'
|
+#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCar'
|
||||||
+'erAttri.Foreground'#7#9'clDefault'#22'NumberAttri.Foreground'#7#6'clNavy'#22
|
+'et'#8#6'Option'#2#1#8'Priority'#2#0#0#0#0#0#0#0#17'TSynFreePascalSyn'#17'Sy'
|
||||||
+'StringAttri.Foreground'#7#6'clBlue'#22'SymbolAttri.Foreground'#7#5'clRed'#25
|
+'nFreePascalSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue'#18'Co'
|
||||||
+'DirectiveAttri.Foreground'#7#5'clRed'#20'DirectiveAttri.Style'#11#6'fsBold'
|
+'mmentAttri.Style'#11#6'fsBold'#0#26'IdentifierAttri.Foreground'#7#9'clDefau'
|
||||||
+#0#12'CompilerMode'#7#9'pcmObjFPC'#14'NestedComments'#9#4'left'#3'@'#1#3'top'
|
+'lt'#22'NumberAttri.Foreground'#7#6'clNavy'#22'StringAttri.Foreground'#7#6'c'
|
||||||
+#2#16#0#0#0
|
+'lBlue'#22'SymbolAttri.Foreground'#7#5'clRed'#25'DirectiveAttri.Foreground'#7
|
||||||
|
+#5'clRed'#20'DirectiveAttri.Style'#11#6'fsBold'#0#12'CompilerMode'#7#9'pcmOb'
|
||||||
|
+'jFPC'#14'NestedComments'#9#4'left'#3'@'#1#3'top'#2#16#0#0#0
|
||||||
]);
|
]);
|
||||||
|
@ -28,7 +28,8 @@ interface
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
Classes, SysUtils, FileUtil, LResources, Forms, SynHighlighterPas, SynEdit, SynEditMarkupHighAll,
|
Classes, SysUtils, FileUtil, LResources, Forms, SynHighlighterPas, SynEdit, SynEditMarkupHighAll,
|
||||||
mmlpsthread,ComCtrls, SynEditKeyCmds, LCLType,MufasaBase, SynEditMarkupSpecialLine, Graphics, Controls;
|
mmlpsthread,ComCtrls, SynEditKeyCmds, LCLType,MufasaBase, SynEditMarkupSpecialLine, Graphics, Controls,
|
||||||
|
v_ideCodeInsight, v_ideCodeParser, CastaliaPasLexTypes, CastaliaSimplePasPar, SynEditHighlighter;
|
||||||
const
|
const
|
||||||
ecCodeCompletion = ecUserFirst;
|
ecCodeCompletion = ecUserFirst;
|
||||||
type
|
type
|
||||||
@ -46,11 +47,16 @@ type
|
|||||||
SynEdit: TSynEdit;
|
SynEdit: TSynEdit;
|
||||||
SynFreePascalSyn1: TSynFreePascalSyn;
|
SynFreePascalSyn1: TSynFreePascalSyn;
|
||||||
procedure SynEditChange(Sender: TObject);
|
procedure SynEditChange(Sender: TObject);
|
||||||
|
procedure SynEditClickLink(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
procedure SynEditDragDrop(Sender, Source: TObject; X, Y: Integer);
|
procedure SynEditDragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||||
procedure SynEditDragOver(Sender, Source: TObject; X, Y: Integer;
|
procedure SynEditDragOver(Sender, Source: TObject; X, Y: Integer;
|
||||||
State: TDragState; var Accept: Boolean);
|
State: TDragState; var Accept: Boolean);
|
||||||
procedure SynEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
|
procedure SynEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
|
||||||
);
|
);
|
||||||
|
procedure SynEditKeyPress(Sender: TObject; var Key: char);
|
||||||
|
procedure SynEditMouseLink(Sender: TObject; X, Y: Integer;
|
||||||
|
var AllowMouseLink: Boolean);
|
||||||
procedure SynEditProcessCommand(Sender: TObject;
|
procedure SynEditProcessCommand(Sender: TObject;
|
||||||
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
|
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
|
||||||
procedure SynEditProcessUserCommand(Sender: TObject;
|
procedure SynEditProcessUserCommand(Sender: TObject;
|
||||||
@ -81,10 +87,43 @@ type
|
|||||||
{ public declarations }
|
{ public declarations }
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function WordAtCaret(e: TSynEdit; var sp, ep: Integer; Start: Integer = -1): string;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
uses
|
uses
|
||||||
TestUnit, SynEditTypes, LCLIntF, StrUtils,framefunctionlist;
|
TestUnit, SynEditTypes, LCLIntF, StrUtils,framefunctionlist;
|
||||||
|
|
||||||
|
function WordAtCaret(e: TSynEdit; var sp, ep: Integer; Start: Integer = -1): string;
|
||||||
|
var
|
||||||
|
s: string;
|
||||||
|
l: Integer;
|
||||||
|
begin
|
||||||
|
Result := '';
|
||||||
|
if (Start = -1) then
|
||||||
|
Start := e.CaretX;
|
||||||
|
sp := Start - 1;
|
||||||
|
ep := Start - 1;
|
||||||
|
s := e.Lines[e.CaretY - 1];
|
||||||
|
l := Length(s);
|
||||||
|
//if (sp > l) then
|
||||||
|
// Dec(sp);
|
||||||
|
|
||||||
|
if (sp < 1) or (sp > l) or (not (s[sp] in ['a'..'z', 'A'..'Z', '0'..'9', '_'])) then
|
||||||
|
begin
|
||||||
|
Inc(sp);
|
||||||
|
Inc(ep);
|
||||||
|
if (sp < 1) or (sp > l) or (not (s[sp] in ['a'..'z', 'A'..'Z', '0'..'9', '_'])) then
|
||||||
|
Exit('');
|
||||||
|
end;
|
||||||
|
|
||||||
|
while (sp > 1) and (sp <= l) and (s[sp - 1] in ['a'..'z', 'A'..'Z', '0'..'9', '_']) do
|
||||||
|
Dec(sp);
|
||||||
|
while (ep >= 1) and (ep < l) and (s[ep + 1] in ['a'..'z', 'A'..'Z', '0'..'9', '_']) do
|
||||||
|
Inc(ep);
|
||||||
|
|
||||||
|
Result := Copy(s, sp, ep - sp + 1);
|
||||||
|
end;
|
||||||
|
|
||||||
{ TScriptFrame }
|
{ TScriptFrame }
|
||||||
|
|
||||||
procedure TScriptFrame.SynEditChange(Sender: TObject);
|
procedure TScriptFrame.SynEditChange(Sender: TObject);
|
||||||
@ -98,6 +137,44 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TScriptFrame.SynEditClickLink(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
var
|
||||||
|
mp: TCodeInsight;
|
||||||
|
ms: TMemoryStream;
|
||||||
|
d: TDeclaration;
|
||||||
|
sp, ep: Integer;
|
||||||
|
begin
|
||||||
|
mp := TCodeInsight.Create;
|
||||||
|
mp.OnMessage := @Form1.OnCCMessage;
|
||||||
|
mp.OnFindInclude := @Form1.OnCCFindInclude;
|
||||||
|
|
||||||
|
ms := TMemoryStream.Create;
|
||||||
|
SynEdit.Lines.SaveToStream(ms);
|
||||||
|
|
||||||
|
try
|
||||||
|
SynEdit.GetWordBoundsAtRowCol(SynEdit.CaretXY, sp, ep);
|
||||||
|
mp.Run(ms);
|
||||||
|
mp.Position := SynEdit.SelStart + (ep - SynEdit.CaretX) - 1;
|
||||||
|
|
||||||
|
d := mp.FindVarBase(mp.GetExpressionAtPos);
|
||||||
|
if (d <> nil) then
|
||||||
|
begin
|
||||||
|
if (TCodeInsight(d.Parser).FileName <> mp.FileName) then
|
||||||
|
mDebugLn('Declared in "' + TCodeInsight(d.Parser).FileName + '" at ' + IntToStr(d.StartPos))
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
SynEdit.SelStart := d.StartPos + 1;
|
||||||
|
SynEdit.SelEnd := d.StartPos + Length(TrimRight(d.RawText)) + 1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
finally
|
||||||
|
FreeAndNil(ms);
|
||||||
|
FreeAndNil(mp);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TScriptFrame.SynEditDragDrop(Sender, Source: TObject; X, Y: Integer);
|
procedure TScriptFrame.SynEditDragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||||
begin
|
begin
|
||||||
if Source is TFunctionListFrame then
|
if Source is TFunctionListFrame then
|
||||||
@ -125,6 +202,22 @@ begin
|
|||||||
Form1.ActionFindNextExecute(Sender);
|
Form1.ActionFindNextExecute(Sender);
|
||||||
key := 0;
|
key := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Form1.CodeCompletionForm.HandleKeyDown(Sender, Key, Shift);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TScriptFrame.SynEditKeyPress(Sender: TObject; var Key: char);
|
||||||
|
begin
|
||||||
|
Form1.CodeCompletionForm.HandleKeyPress(Sender, Key);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TScriptFrame.SynEditMouseLink(Sender: TObject; X, Y: Integer;
|
||||||
|
var AllowMouseLink: Boolean);
|
||||||
|
var
|
||||||
|
s: string;
|
||||||
|
Attri: TSynHighlighterAttributes;
|
||||||
|
begin
|
||||||
|
AllowMouseLink := SynEdit.GetHighlighterAttriAtRowCol(Point(X, Y), s, Attri) and (Attri.Name = 'Identifier');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TScriptFrame.SynEditProcessCommand(Sender: TObject;
|
procedure TScriptFrame.SynEditProcessCommand(Sender: TObject;
|
||||||
@ -144,14 +237,22 @@ end;
|
|||||||
|
|
||||||
procedure TScriptFrame.SynEditProcessUserCommand(Sender: TObject;
|
procedure TScriptFrame.SynEditProcessUserCommand(Sender: TObject;
|
||||||
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
|
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
|
||||||
var
|
{var
|
||||||
LineText,SearchText : string;
|
LineText,SearchText : string;
|
||||||
Caret : TPoint;
|
Caret : TPoint;
|
||||||
i,endI : integer;
|
i,endI : integer;}
|
||||||
|
var
|
||||||
|
mp: TCodeInsight;
|
||||||
|
ms: TMemoryStream;
|
||||||
|
ItemList, InsertList: TStringList;
|
||||||
|
sp, ep: Integer;
|
||||||
|
p: TPoint;
|
||||||
|
s, Filter: string;
|
||||||
|
Attri: TSynHighlighterAttributes;
|
||||||
begin
|
begin
|
||||||
if Command = ecCodeCompletion then
|
if (Command = ecCodeCompletion) and ((not SynEdit.GetHighlighterAttriAtRowCol(SynEdit.CaretXY, s, Attri)) or (Attri.Name = 'Identifier')) then
|
||||||
begin
|
begin
|
||||||
form1.FunctionListShown(True);
|
{form1.FunctionListShown(True);
|
||||||
with form1.frmFunctionList do
|
with form1.frmFunctionList do
|
||||||
if editSearchList.CanFocus then
|
if editSearchList.CanFocus then
|
||||||
begin;
|
begin;
|
||||||
@ -187,8 +288,63 @@ begin
|
|||||||
SynEdit.SelectedColor.Foreground:= clBlack;
|
SynEdit.SelectedColor.Foreground:= clBlack;
|
||||||
SynEdit.SelectedColor.Background:= clWhite;
|
SynEdit.SelectedColor.Background:= clWhite;
|
||||||
Synedit.MarkupByClass[TSynEditMarkupHighlightAllCaret].TempDisable;
|
Synedit.MarkupByClass[TSynEditMarkupHighlightAllCaret].TempDisable;
|
||||||
|
end;}
|
||||||
|
mp := TCodeInsight.Create;
|
||||||
|
mp.OnMessage := @Form1.OnCCMessage;
|
||||||
|
mp.OnFindInclude := @Form1.OnCCFindInclude;
|
||||||
|
|
||||||
|
ms := TMemoryStream.Create;
|
||||||
|
ItemList := TStringList.Create;
|
||||||
|
InsertList := TStringList.Create;
|
||||||
|
InsertList.Sorted := True;
|
||||||
|
|
||||||
|
Synedit.Lines.SaveToStream(ms);
|
||||||
|
|
||||||
|
try
|
||||||
|
Filter := WordAtCaret(Synedit, sp, ep);
|
||||||
|
Form1.CodeCompletionStart := Point(sp, Synedit.CaretY);
|
||||||
|
mp.Run(ms, nil, Synedit.SelStart + (ep - Synedit.CaretX) - 1);
|
||||||
|
|
||||||
|
s := mp.GetExpressionAtPos;
|
||||||
|
if (s <> '') then
|
||||||
|
begin
|
||||||
|
sp := LastDelimiter('.', s);
|
||||||
|
if (sp > 0) then
|
||||||
|
Delete(s, sp, Length(s) - sp + 1)
|
||||||
|
else
|
||||||
|
s := '';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
mp.FillSynCompletionProposal(ItemList, InsertList, s);
|
||||||
|
p := SynEdit.ClientToScreen(SynEdit.RowColumnToPixels(Point(ep, SynEdit.CaretY)));
|
||||||
|
p.y := p.y + SynEdit.LineHeight;
|
||||||
|
Form1.CodeCompletionForm.Show(p, ItemList, InsertList, Filter, SynEdit);
|
||||||
|
finally
|
||||||
|
FreeAndNil(ms);
|
||||||
|
FreeAndNil(mp);
|
||||||
|
ItemList.Free;
|
||||||
|
InsertList.Free;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if Form1.CodeCompletionForm.Visible then
|
||||||
|
case Command of
|
||||||
|
ecDeleteChar, ecDeleteWord, ecDeleteEOL:
|
||||||
|
begin
|
||||||
|
if (SynEdit.CaretY = Form1.CodeCompletionStart.y) then
|
||||||
|
begin
|
||||||
|
//e.GetWordBoundsAtRowCol(acp_start, sp, ep);
|
||||||
|
s := WordAtCaret(SynEdit, sp, ep, Form1.CodeCompletionStart.x);
|
||||||
|
if (SynEdit.CaretX >= Form1.CodeCompletionStart.x) and (SynEdit.CaretX <= ep) then
|
||||||
|
begin
|
||||||
|
Form1.CodeCompletionForm.ListBox.Filter := s;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Form1.CodeCompletionForm.Hide;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TScriptFrame.SynEditSpecialLineColors(Sender: TObject;
|
procedure TScriptFrame.SynEditSpecialLineColors(Sender: TObject;
|
||||||
@ -204,6 +360,9 @@ end;
|
|||||||
|
|
||||||
procedure TScriptFrame.SynEditStatusChange(Sender: TObject;
|
procedure TScriptFrame.SynEditStatusChange(Sender: TObject;
|
||||||
Changes: TSynStatusChanges);
|
Changes: TSynStatusChanges);
|
||||||
|
var
|
||||||
|
sp, ep: Integer;
|
||||||
|
s: string;
|
||||||
begin
|
begin
|
||||||
{$IFDEF UpdateEditButtons}
|
{$IFDEF UpdateEditButtons}
|
||||||
if scSelection in changes then
|
if scSelection in changes then
|
||||||
@ -213,8 +372,25 @@ begin
|
|||||||
form1.TT_Paste.Enabled:= SynEdit.CanPaste;
|
form1.TT_Paste.Enabled:= SynEdit.CanPaste;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
|
||||||
|
|
||||||
|
if Form1.CodeCompletionForm.Visible then
|
||||||
|
if (scAll in Changes) or (scTopLine in Changes) then
|
||||||
|
Form1.CodeCompletionForm.Visible := False
|
||||||
|
else if (scCaretX in Changes) or (scCaretY in Changes) or (scSelection in Changes) or (scModified in Changes) then
|
||||||
|
begin
|
||||||
|
if (SynEdit.CaretY = Form1.CodeCompletionStart.y) then
|
||||||
|
begin
|
||||||
|
s := WordAtCaret(SynEdit, sp, ep, Form1.CodeCompletionStart.x);
|
||||||
|
if (SynEdit.CaretX >= Form1.CodeCompletionStart.x) and (SynEdit.CaretX - 1 <= ep) then
|
||||||
|
begin
|
||||||
|
Form1.CodeCompletionForm.ListBox.Filter := s;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Form1.CodeCompletionForm.Hide;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TScriptFrame.undo;
|
procedure TScriptFrame.undo;
|
||||||
begin
|
begin
|
||||||
|
@ -207,8 +207,8 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object StatusBar: TStatusBar
|
object StatusBar: TStatusBar
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 23
|
Height = 22
|
||||||
Top = 512
|
Top = 513
|
||||||
Width = 739
|
Width = 739
|
||||||
Panels = <
|
Panels = <
|
||||||
item
|
item
|
||||||
@ -230,7 +230,7 @@ object Form1: TForm1
|
|||||||
object PanelMemo: TPanel
|
object PanelMemo: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 154
|
Height = 154
|
||||||
Top = 358
|
Top = 359
|
||||||
Width = 739
|
Width = 739
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
ClientHeight = 154
|
ClientHeight = 154
|
||||||
@ -250,19 +250,19 @@ object Form1: TForm1
|
|||||||
Cursor = crVSplit
|
Cursor = crVSplit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 5
|
Height = 5
|
||||||
Top = 353
|
Top = 354
|
||||||
Width = 739
|
Width = 739
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
ResizeAnchor = akBottom
|
ResizeAnchor = akBottom
|
||||||
end
|
end
|
||||||
object ScriptPanel: TPanel
|
object ScriptPanel: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 329
|
Height = 330
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 739
|
Width = 739
|
||||||
Align = alClient
|
Align = alClient
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
ClientHeight = 329
|
ClientHeight = 330
|
||||||
ClientWidth = 739
|
ClientWidth = 739
|
||||||
DockSite = True
|
DockSite = True
|
||||||
TabOrder = 4
|
TabOrder = 4
|
||||||
@ -270,7 +270,7 @@ object Form1: TForm1
|
|||||||
OnDockOver = ScriptPanelDockOver
|
OnDockOver = ScriptPanelDockOver
|
||||||
object PageControl1: TPageControl
|
object PageControl1: TPageControl
|
||||||
Left = 155
|
Left = 155
|
||||||
Height = 294
|
Height = 295
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 584
|
Width = 584
|
||||||
Align = alClient
|
Align = alClient
|
||||||
@ -289,7 +289,7 @@ object Form1: TForm1
|
|||||||
object SearchPanel: TPanel
|
object SearchPanel: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 35
|
Height = 35
|
||||||
Top = 294
|
Top = 295
|
||||||
Width = 739
|
Width = 739
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
BevelOuter = bvSpace
|
BevelOuter = bvSpace
|
||||||
@ -385,7 +385,7 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object LabeledEditSearch: TLabeledEdit
|
object LabeledEditSearch: TLabeledEdit
|
||||||
Left = 104
|
Left = 104
|
||||||
Height = 21
|
Height = 23
|
||||||
Top = 6
|
Top = 6
|
||||||
Width = 174
|
Width = 174
|
||||||
EditLabel.AnchorSideLeft.Control = LabeledEditSearch
|
EditLabel.AnchorSideLeft.Control = LabeledEditSearch
|
||||||
@ -393,10 +393,10 @@ object Form1: TForm1
|
|||||||
EditLabel.AnchorSideTop.Side = asrCenter
|
EditLabel.AnchorSideTop.Side = asrCenter
|
||||||
EditLabel.AnchorSideRight.Control = LabeledEditSearch
|
EditLabel.AnchorSideRight.Control = LabeledEditSearch
|
||||||
EditLabel.AnchorSideBottom.Control = LabeledEditSearch
|
EditLabel.AnchorSideBottom.Control = LabeledEditSearch
|
||||||
EditLabel.Left = 73
|
EditLabel.Left = 71
|
||||||
EditLabel.Height = 14
|
EditLabel.Height = 16
|
||||||
EditLabel.Top = 9
|
EditLabel.Top = 9
|
||||||
EditLabel.Width = 28
|
EditLabel.Width = 30
|
||||||
EditLabel.Caption = 'Find: '
|
EditLabel.Caption = 'Find: '
|
||||||
EditLabel.ParentColor = False
|
EditLabel.ParentColor = False
|
||||||
LabelPosition = lpLeft
|
LabelPosition = lpLeft
|
||||||
@ -409,9 +409,9 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object CheckBoxMatchCase: TCheckBox
|
object CheckBoxMatchCase: TCheckBox
|
||||||
Left = 320
|
Left = 320
|
||||||
Height = 17
|
Height = 19
|
||||||
Top = 7
|
Top = 7
|
||||||
Width = 72
|
Width = 80
|
||||||
Caption = 'Match case'
|
Caption = 'Match case'
|
||||||
OnClick = CheckBoxMatchCaseClick
|
OnClick = CheckBoxMatchCaseClick
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
@ -419,28 +419,28 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object SplitterFunctionList: TSplitter
|
object SplitterFunctionList: TSplitter
|
||||||
Left = 150
|
Left = 150
|
||||||
Height = 294
|
Height = 295
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 5
|
Width = 5
|
||||||
OnCanResize = SplitterFunctionListCanResize
|
OnCanResize = SplitterFunctionListCanResize
|
||||||
Visible = False
|
Visible = False
|
||||||
end
|
end
|
||||||
inline frmFunctionList: TFunctionListFrame
|
inline frmFunctionList: TFunctionListFrame
|
||||||
Height = 294
|
Height = 295
|
||||||
Width = 150
|
Width = 150
|
||||||
ClientHeight = 294
|
ClientHeight = 295
|
||||||
ClientWidth = 150
|
ClientWidth = 150
|
||||||
OnEndDock = nil
|
OnEndDock = nil
|
||||||
TabOrder = 3
|
TabOrder = 3
|
||||||
inherited FunctionList: TTreeView
|
inherited FunctionList: TTreeView
|
||||||
Height = 255
|
Height = 252
|
||||||
Width = 150
|
Width = 150
|
||||||
OnChange = FunctionListChange
|
OnChange = FunctionListChange
|
||||||
OnEnter = FunctionListEnter
|
OnEnter = FunctionListEnter
|
||||||
OnExit = FunctionListExit
|
OnExit = FunctionListExit
|
||||||
end
|
end
|
||||||
inherited editSearchList: TEdit
|
inherited editSearchList: TEdit
|
||||||
Top = 273
|
Top = 272
|
||||||
Width = 150
|
Width = 150
|
||||||
OnExit = editSearchListExit
|
OnExit = editSearchListExit
|
||||||
OnKeyDown = editSearchListKeyDown
|
OnKeyDown = editSearchListKeyDown
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -42,7 +42,7 @@ uses
|
|||||||
SynEditMarkupHighAll, LMessages, Buttons,
|
SynEditMarkupHighAll, LMessages, Buttons,
|
||||||
stringutil,mufasatypesutil,mufasabase,
|
stringutil,mufasatypesutil,mufasabase,
|
||||||
about, framefunctionlist, ocr, updateform, simbasettings, psextension, virtualextension,
|
about, framefunctionlist, ocr, updateform, simbasettings, psextension, virtualextension,
|
||||||
extensionmanager, settingssandbox;
|
extensionmanager, settingssandbox, v_ideCodeInsight, v_ideCodeParser, CastaliaPasLexTypes, CastaliaSimplePasPar, v_AutoCompleteForm, PSDump;
|
||||||
|
|
||||||
const
|
const
|
||||||
SimbaVersion = 587;
|
SimbaVersion = 587;
|
||||||
@ -314,6 +314,10 @@ type
|
|||||||
procedure TT_UpdateClick(Sender: TObject);
|
procedure TT_UpdateClick(Sender: TObject);
|
||||||
procedure UpdateMenuButtonClick(Sender: TObject);
|
procedure UpdateMenuButtonClick(Sender: TObject);
|
||||||
procedure UpdateTimerCheck(Sender: TObject);
|
procedure UpdateTimerCheck(Sender: TObject);
|
||||||
|
|
||||||
|
procedure OnCCMessage(Sender: TObject; const Typ: TMessageEventType; const Msg: string; X, Y: Integer);
|
||||||
|
procedure OnCompleteCode(Str: string);
|
||||||
|
function OnCCFindInclude(Sender: TObject; var FileName: string): Boolean;
|
||||||
private
|
private
|
||||||
PopupTab : integer;
|
PopupTab : integer;
|
||||||
RecentFileItems : array of TMenuItem;
|
RecentFileItems : array of TMenuItem;
|
||||||
@ -330,6 +334,8 @@ type
|
|||||||
SearchString : string;
|
SearchString : string;
|
||||||
CurrScript : TScriptFrame; //The current scriptframe
|
CurrScript : TScriptFrame; //The current scriptframe
|
||||||
CurrTab : TMufasaTab; //The current TMufasaTab
|
CurrTab : TMufasaTab; //The current TMufasaTab
|
||||||
|
CodeCompletionForm: TAutoCompletePopup;
|
||||||
|
CodeCompletionStart: TPoint;
|
||||||
Tabs : TList;
|
Tabs : TList;
|
||||||
Manager: TIOManager;
|
Manager: TIOManager;
|
||||||
OCR_Fonts: TMOCR;
|
OCR_Fonts: TMOCR;
|
||||||
@ -427,8 +433,41 @@ end;
|
|||||||
var
|
var
|
||||||
DebugCriticalSection: syncobjs.TCriticalSection;
|
DebugCriticalSection: syncobjs.TCriticalSection;
|
||||||
|
|
||||||
procedure TForm1.ProcessDebugStream(Sender: TObject);
|
procedure TForm1.OnCCMessage(Sender: TObject; const Typ: TMessageEventType; const Msg: string; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
if (Typ = meNotSupported) then
|
||||||
|
Exit;
|
||||||
|
if (Sender is TmwSimplePasPar) then
|
||||||
|
if (TmwSimplePasPar(Sender).Lexer.TokenID = tok_DONE) then
|
||||||
|
Exit;
|
||||||
|
mDebugLn('ERROR: '+Format('%d:%d %s', [Y + 1, X, Msg])+' in '+TCodeInsight(Sender).FileName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.OnCompleteCode(Str: string);
|
||||||
|
var
|
||||||
|
sp, ep: Integer;
|
||||||
|
s: string;
|
||||||
|
begin
|
||||||
|
if (Str <> '') then
|
||||||
|
begin
|
||||||
|
s := WordAtCaret(CurrScript.SynEdit, sp, ep);
|
||||||
|
if (s <> '') then
|
||||||
|
begin
|
||||||
|
CurrScript.SynEdit.SelStart := CurrScript.SynEdit.SelStart + (sp - CurrScript.SynEdit.CaretX);
|
||||||
|
CurrScript.SynEdit.SelEnd := CurrScript.SynEdit.SelStart + (ep - CurrScript.SynEdit.CaretX) + 1;
|
||||||
|
CurrScript.SynEdit.SelText := Str;
|
||||||
|
end
|
||||||
|
else
|
||||||
|
CurrScript.SynEdit.InsertTextAtCaret(Str);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TForm1.OnCCFindInclude(Sender: TObject; var FileName: string): Boolean;
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TForm1.ProcessDebugStream(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if length(DebugStream) = 0 then
|
if length(DebugStream) = 0 then
|
||||||
Exit;
|
Exit;
|
||||||
@ -1482,6 +1521,7 @@ end;
|
|||||||
|
|
||||||
procedure TForm1.StopCodeCompletion;
|
procedure TForm1.StopCodeCompletion;
|
||||||
begin
|
begin
|
||||||
|
CodeCompletionForm.Hide;
|
||||||
if frmFunctionList.InCodeCompletion then
|
if frmFunctionList.InCodeCompletion then
|
||||||
with CurrScript,frmFunctionList do
|
with CurrScript,frmFunctionList do
|
||||||
begin;
|
begin;
|
||||||
@ -1699,6 +1739,11 @@ begin
|
|||||||
MainDir:= ExtractFileDir(Application.ExeName);
|
MainDir:= ExtractFileDir(Application.ExeName);
|
||||||
RecentFiles := TStringList.Create;
|
RecentFiles := TStringList.Create;
|
||||||
SimbaSettingsFile := MainDir + DS + 'settings.xml';
|
SimbaSettingsFile := MainDir + DS + 'settings.xml';
|
||||||
|
|
||||||
|
//AutoCompletionStart := Point(-1, -1);
|
||||||
|
CodeCompletionForm := TAutoCompletePopup.Create(Self);
|
||||||
|
CodeCompletionForm.InsertProc := @OnCompleteCode;
|
||||||
|
|
||||||
{$ifdef MSWindows}
|
{$ifdef MSWindows}
|
||||||
ConsoleVisible := True;
|
ConsoleVisible := True;
|
||||||
PrevWndProc := Windows.WNDPROC(GetWindowLong(self.handle,GWL_WNDPROC));
|
PrevWndProc := Windows.WNDPROC(GetWindowLong(self.handle,GWL_WNDPROC));
|
||||||
@ -1748,7 +1793,6 @@ begin
|
|||||||
FirstRun := true;//Our next run is the first run.
|
FirstRun := true;//Our next run is the first run.
|
||||||
HandleParameters;
|
HandleParameters;
|
||||||
TT_Update.Visible:= false;
|
TT_Update.Visible:= false;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.FormDestroy(Sender: TObject);
|
procedure TForm1.FormDestroy(Sender: TObject);
|
||||||
|
Loading…
Reference in New Issue
Block a user