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