mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 20:59:12 +02:00
IDE: Macro support for module's filename in "Code Templates" dialog. Issue #33901, patch from errno.
git-svn-id: trunk@58678 -
This commit is contained in:
parent
dd0594c20b
commit
f8fcb833f4
@ -856,7 +856,8 @@ begin
|
|||||||
AutoOnOptionsCheckGroup.Items.Add(lisAutomaticallyIgnoreForSelection);
|
AutoOnOptionsCheckGroup.Items.Add(lisAutomaticallyIgnoreForSelection);
|
||||||
AutoOnOptionsCheckGroup.Items.Add(lisAutomaticallyRemoveCharacter);
|
AutoOnOptionsCheckGroup.Items.Add(lisAutomaticallyRemoveCharacter);
|
||||||
|
|
||||||
FilenameEdit.Text:=EditorOpts.CodeTemplateFileName;
|
FilenameEdit.Text:=EditorOpts.CodeTemplateFileNameRaw;
|
||||||
|
FilenameEdit.InitialDir:=ExtractFilePath(EditorOpts.CodeTemplateFileNameExpand);
|
||||||
FilenameEdit.DialogTitle:=dlgChsCodeTempl;
|
FilenameEdit.DialogTitle:=dlgChsCodeTempl;
|
||||||
FilenameEdit.Filter:=dlgFilterDciFile + '|*.dci|' + dlgFilterAll + '|' + GetAllFilesMask;
|
FilenameEdit.Filter:=dlgFilterDciFile + '|*.dci|' + dlgFilterAll + '|' + GetAllFilesMask;
|
||||||
|
|
||||||
@ -874,7 +875,7 @@ begin
|
|||||||
|
|
||||||
// init SynAutoComplete
|
// init SynAutoComplete
|
||||||
with SynAutoComplete do begin
|
with SynAutoComplete do begin
|
||||||
s:=EditorOpts.CodeTemplateFileName;
|
s:=EditorOpts.CodeTemplateFileNameExpand;
|
||||||
if FileExistsUTF8(s) then
|
if FileExistsUTF8(s) then
|
||||||
try
|
try
|
||||||
LoadStringsFromFileUTF8(AutoCompleteList,s);
|
LoadStringsFromFileUTF8(AutoCompleteList,s);
|
||||||
@ -910,7 +911,7 @@ var
|
|||||||
begin
|
begin
|
||||||
SaveCurCodeTemplate;
|
SaveCurCodeTemplate;
|
||||||
|
|
||||||
EditorOpts.CodeTemplateFileName:=FilenameEdit.Text;
|
EditorOpts.CodeTemplateFileNameRaw:=FilenameEdit.Text;
|
||||||
//EditorOpts.CodeTemplateIndentToTokenStart:=
|
//EditorOpts.CodeTemplateIndentToTokenStart:=
|
||||||
// (CodeTemplateIndentTypeRadioGroup.ItemIndex=0);
|
// (CodeTemplateIndentTypeRadioGroup.ItemIndex=0);
|
||||||
|
|
||||||
@ -920,11 +921,11 @@ begin
|
|||||||
Res:=mrOk;
|
Res:=mrOk;
|
||||||
repeat
|
repeat
|
||||||
try
|
try
|
||||||
SaveStringsToFileUTF8(SynAutoComplete.AutoCompleteList,EditorOpts.CodeTemplateFileName);
|
SaveStringsToFileUTF8(SynAutoComplete.AutoCompleteList,EditorOpts.CodeTemplateFileNameExpand);
|
||||||
except
|
except
|
||||||
res:=IDEMessageDialog(lisCCOErrorCaption, 'Unable to write code '
|
res:=IDEMessageDialog(lisCCOErrorCaption, 'Unable to write code '
|
||||||
+'templates to file '''
|
+'templates to file '''
|
||||||
+EditorOpts.CodeTemplateFileName+'''! ',mtError
|
+EditorOpts.CodeTemplateFileNameExpand+'''! ',mtError
|
||||||
,[mbAbort, mbIgnore, mbRetry]);
|
,[mbAbort, mbIgnore, mbRetry]);
|
||||||
if res=mrAbort then exit;
|
if res=mrAbort then exit;
|
||||||
end;
|
end;
|
||||||
|
@ -67,7 +67,7 @@ uses
|
|||||||
LinkScanner, CodeToolManager,
|
LinkScanner, CodeToolManager,
|
||||||
// IDEIntf
|
// IDEIntf
|
||||||
IDECommands, SrcEditorIntf, IDEOptionsIntf, IDEOptEditorIntf, IDEDialogs,
|
IDECommands, SrcEditorIntf, IDEOptionsIntf, IDEOptEditorIntf, IDEDialogs,
|
||||||
EditorSyntaxHighlighterDef,
|
EditorSyntaxHighlighterDef, MacroIntf,
|
||||||
// IDE
|
// IDE
|
||||||
SourceMarks, LazarusIDEStrConsts, KeyMapping, LazConf;
|
SourceMarks, LazarusIDEStrConsts, KeyMapping, LazConf;
|
||||||
|
|
||||||
@ -1454,7 +1454,7 @@ type
|
|||||||
fAutoToolTipExprEval: Boolean;
|
fAutoToolTipExprEval: Boolean;
|
||||||
fAutoToolTipSymbTools: Boolean;
|
fAutoToolTipSymbTools: Boolean;
|
||||||
FDbgHintAutoTypeCastClass: Boolean;
|
FDbgHintAutoTypeCastClass: Boolean;
|
||||||
fCodeTemplateFileName: String;
|
fCodeTemplateFileNameRaw: String;
|
||||||
fCTemplIndentToTokenStart: Boolean;
|
fCTemplIndentToTokenStart: Boolean;
|
||||||
fAutoDisplayFuncPrototypes: Boolean;
|
fAutoDisplayFuncPrototypes: Boolean;
|
||||||
|
|
||||||
@ -1497,7 +1497,7 @@ type
|
|||||||
FStringBreakPrefix: String;
|
FStringBreakPrefix: String;
|
||||||
|
|
||||||
FDefaultValues: TEditorOptions;
|
FDefaultValues: TEditorOptions;
|
||||||
|
function GetCodeTemplateFileNameExpand:String;
|
||||||
protected
|
protected
|
||||||
function GetTabPosition: TTabPosition; override;
|
function GetTabPosition: TTabPosition; override;
|
||||||
public
|
public
|
||||||
@ -1655,8 +1655,10 @@ type
|
|||||||
public
|
public
|
||||||
property AutoDelayInMSec: Integer read fAutoDelayInMSec
|
property AutoDelayInMSec: Integer read fAutoDelayInMSec
|
||||||
write fAutoDelayInMSec default 1000;
|
write fAutoDelayInMSec default 1000;
|
||||||
property CodeTemplateFileName: String
|
property CodeTemplateFileNameRaw: String
|
||||||
read fCodeTemplateFileName write fCodeTemplateFileName;
|
read fCodeTemplateFileNameRaw write fCodeTemplateFileNameRaw;
|
||||||
|
property CodeTemplateFileNameExpand:String
|
||||||
|
read GetCodeTemplateFileNameExpand;
|
||||||
property CodeTemplateIndentToTokenStart: Boolean
|
property CodeTemplateIndentToTokenStart: Boolean
|
||||||
read fCTemplIndentToTokenStart write fCTemplIndentToTokenStart;
|
read fCTemplIndentToTokenStart write fCTemplIndentToTokenStart;
|
||||||
property AutoRemoveEmptyMethods: Boolean read FAutoRemoveEmptyMethods
|
property AutoRemoveEmptyMethods: Boolean read FAutoRemoveEmptyMethods
|
||||||
@ -4548,15 +4550,15 @@ begin
|
|||||||
Init;
|
Init;
|
||||||
|
|
||||||
// code templates (dci file)
|
// code templates (dci file)
|
||||||
fCodeTemplateFileName :=
|
fCodeTemplateFileNameRaw :=
|
||||||
TrimFilename(AppendPathDelim(GetPrimaryConfigPath)+DefaultCodeTemplatesFilename);
|
TrimFilename(AppendPathDelim(GetPrimaryConfigPath)+DefaultCodeTemplatesFilename);
|
||||||
CopySecondaryConfigFile(DefaultCodeTemplatesFilename);
|
CopySecondaryConfigFile(DefaultCodeTemplatesFilename);
|
||||||
if not FileExistsUTF8(CodeTemplateFileName) then
|
if not FileExistsUTF8(CodeTemplateFileNameExpand) then
|
||||||
begin
|
begin
|
||||||
res := TResourceStream.Create(HInstance, PChar('lazarus_dci_file'), PChar(RT_RCDATA));
|
res := TResourceStream.Create(HInstance, PChar('lazarus_dci_file'), PChar(RT_RCDATA));
|
||||||
try
|
try
|
||||||
InvalidateFileStateCache;
|
InvalidateFileStateCache;
|
||||||
fs := TFileStreamUTF8.Create(CodeTemplateFileName, fmCreate);
|
fs := TFileStreamUTF8.Create(CodeTemplateFileNameExpand, fmCreate);
|
||||||
try
|
try
|
||||||
fs.CopyFrom(res, res.Size);
|
fs.CopyFrom(res, res.Size);
|
||||||
finally
|
finally
|
||||||
@ -4564,7 +4566,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
except
|
except
|
||||||
DebugLn('WARNING: unable to write code template file "',
|
DebugLn('WARNING: unable to write code template file "',
|
||||||
CodeTemplateFileName, '"');
|
CodeTemplateFileNameExpand, '"');
|
||||||
end;
|
end;
|
||||||
res.Free;
|
res.Free;
|
||||||
end;
|
end;
|
||||||
@ -4902,7 +4904,7 @@ begin
|
|||||||
XMLConfig.GetValue('EditorOptions/CodeTools/AutoToolTipSymbTools', True);
|
XMLConfig.GetValue('EditorOptions/CodeTools/AutoToolTipSymbTools', True);
|
||||||
fAutoDelayInMSec :=
|
fAutoDelayInMSec :=
|
||||||
XMLConfig.GetValue('EditorOptions/CodeTools/AutoDelayInMSec', 1000);
|
XMLConfig.GetValue('EditorOptions/CodeTools/AutoDelayInMSec', 1000);
|
||||||
fCodeTemplateFileName :=
|
fCodeTemplateFileNameRaw :=
|
||||||
XMLConfig.GetValue('EditorOptions/CodeTools/CodeTemplateFileName'
|
XMLConfig.GetValue('EditorOptions/CodeTools/CodeTemplateFileName'
|
||||||
, TrimFilename(AppendPathDelim(GetPrimaryConfigPath) + DefaultCodeTemplatesFilename));
|
, TrimFilename(AppendPathDelim(GetPrimaryConfigPath) + DefaultCodeTemplatesFilename));
|
||||||
fCTemplIndentToTokenStart :=
|
fCTemplIndentToTokenStart :=
|
||||||
@ -5098,7 +5100,7 @@ begin
|
|||||||
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoDelayInMSec'
|
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/AutoDelayInMSec'
|
||||||
, fAutoDelayInMSec, 1000);
|
, fAutoDelayInMSec, 1000);
|
||||||
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/CodeTemplateFileName'
|
XMLConfig.SetDeleteValue('EditorOptions/CodeTools/CodeTemplateFileName'
|
||||||
, fCodeTemplateFileName, '');
|
, fCodeTemplateFileNameRaw, '');
|
||||||
XMLConfig.SetDeleteValue(
|
XMLConfig.SetDeleteValue(
|
||||||
'EditorOptions/CodeTools/CodeTemplateIndentToTokenStart/Value'
|
'EditorOptions/CodeTools/CodeTemplateIndentToTokenStart/Value'
|
||||||
, fCTemplIndentToTokenStart, False);
|
, fCTemplIndentToTokenStart, False);
|
||||||
@ -5946,6 +5948,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TEditorOptions.GetCodeTemplateFileNameExpand:String;
|
||||||
|
begin
|
||||||
|
result:=fCodeTemplateFileNameRaw;
|
||||||
|
IDEMacros.SubstituteMacros(result);
|
||||||
|
end;
|
||||||
|
|
||||||
function TEditorOptions.GetTabPosition: TTabPosition;
|
function TEditorOptions.GetTabPosition: TTabPosition;
|
||||||
begin
|
begin
|
||||||
Result := fTabPosition;
|
Result := fTabPosition;
|
||||||
|
@ -10259,8 +10259,8 @@ begin
|
|||||||
AutoStartCompletionBoxTimer.Interval:=EditorOpts.AutoDelayInMSec;
|
AutoStartCompletionBoxTimer.Interval:=EditorOpts.AutoDelayInMSec;
|
||||||
// reload code templates
|
// reload code templates
|
||||||
with CodeTemplateModul do begin
|
with CodeTemplateModul do begin
|
||||||
if FileExistsUTF8(EditorOpts.CodeTemplateFilename) then
|
if FileExistsUTF8(EditorOpts.CodeTemplateFileNameExpand) then
|
||||||
LoadStringsFromFileUTF8(AutoCompleteList,EditorOpts.CodeTemplateFilename)
|
LoadStringsFromFileUTF8(AutoCompleteList,EditorOpts.CodeTemplateFileNameExpand)
|
||||||
else begin
|
else begin
|
||||||
Filename:=EnvironmentOptions.GetParsedLazarusDirectory
|
Filename:=EnvironmentOptions.GetParsedLazarusDirectory
|
||||||
+GetForcedPathDelims('ide/lazarus.dci');
|
+GetForcedPathDelims('ide/lazarus.dci');
|
||||||
@ -11191,7 +11191,7 @@ begin
|
|||||||
// code templates
|
// code templates
|
||||||
FCodeTemplateModul:=TSynEditAutoComplete.Create(Self);
|
FCodeTemplateModul:=TSynEditAutoComplete.Create(Self);
|
||||||
with FCodeTemplateModul do begin
|
with FCodeTemplateModul do begin
|
||||||
DCIFilename:=EditorOpts.CodeTemplateFilename;
|
DCIFilename:=EditorOpts.CodeTemplateFileNameExpand;
|
||||||
if not FileExistsCached(DCIFilename) then
|
if not FileExistsCached(DCIFilename) then
|
||||||
DCIFilename:=EnvironmentOptions.GetParsedLazarusDirectory
|
DCIFilename:=EnvironmentOptions.GetParsedLazarusDirectory
|
||||||
+GetForcedPathDelims('ide/lazarus.dci');
|
+GetForcedPathDelims('ide/lazarus.dci');
|
||||||
|
Loading…
Reference in New Issue
Block a user