Skip to content

Commit 2d9549d

Browse files
committed
bk/2024-09-16-1034
1 parent e4fb15e commit 2d9549d

File tree

6 files changed

+76
-3
lines changed

6 files changed

+76
-3
lines changed

Src/Chat/DelphiAIDev.Chat.View.pas

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,10 @@ procedure TDelphiAIDevChatView.ProcessSend;
434434
LQuestion := TUtilsOTA.GetSelectedBlockOrAllCodeUnit.Trim + sLineBreak;
435435

436436
if btnCodeOnly.ImageIndex = CodeOnly_ImageIndex_ON then
437-
LQuestion := LQuestion + FSettings.LanguageQuestions.GetMsgCodeOnly;
437+
LQuestion := LQuestion + FSettings.LanguageQuestions.GetMsgCodeOnly + sLineBreak;
438+
439+
if not FSettings.DefaultPrompt.Trim.IsEmpty then
440+
LQuestion := LQuestion + FSettings.DefaultPrompt + sLineBreak;
438441

439442
LQuestion := LQuestion + mmQuestion.Lines.Text;
440443

Src/CodeCompletion/DelphiAIDev.CodeCompletion.Search.pas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ procedure TDelphiAIDevCodeCompletionSearch.Process(const AContext: IOTAKeyContex
7474
FQuestions.Add(FSettings.LanguageQuestions.GetLanguageDefinition);
7575
FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeCompletionSuggestion);
7676
FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeOnly);
77+
if not FSettings.CodeCompletionDefaultPrompt.Trim.IsEmpty then
78+
FQuestions.Add(FSettings.CodeCompletionDefaultPrompt);
7779

7880
LIOTAEditPosition := AContext.EditBuffer.EditPosition;
7981
LIOTAEditPosition.InsertText(TConsts.TAG_CODE_COMPLETION);

Src/DB/Chat/DelphiAIDev.DB.Chat.View.pas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,8 @@ procedure TDelphiAIDevDBChatView.ProcessSend;
735735
LQuestion := LQuestion + FSettings.LanguageQuestions.GetMsgJSONIsDatabaseStructure(Self.GetFieldDBSelected.DriverID.ToString);
736736
LQuestion := LQuestion + Self.GetJsonDatabase + sLineBreak;
737737
LQuestion := LQuestion + FSettings.LanguageQuestions.GetMsgJSONInformedAnswerQuestion;
738+
if not FSettings.DefaultPrompt.Trim.IsEmpty then
739+
LQuestion := LQuestion + FSettings.DefaultPrompt + sLineBreak;
738740
LQuestion := LQuestion + mmQuestion.Lines.Text;
739741

740742
LTask := TTask.Create(

Src/Settings/DelphiAIDev.Settings.View.dfm

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,14 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
207207
Top = 33
208208
Width = 667
209209
Height = 521
210-
ActivePage = TabSheet3
210+
ActivePage = TabSheet4
211211
TabOrder = 1
212212
object TabSheet1: TTabSheet
213213
Caption = 'Preferences'
214+
ExplicitLeft = 0
215+
ExplicitTop = 0
216+
ExplicitWidth = 0
217+
ExplicitHeight = 0
214218
object pnPreferencesBack: TPanel
215219
Left = 0
216220
Top = 0
@@ -243,6 +247,13 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
243247
Height = 13
244248
Caption = 'Language used in questions'
245249
end
250+
object Label19: TLabel
251+
Left = 21
252+
Top = 122
253+
Width = 72
254+
Height = 13
255+
Caption = 'Default Prompt'
256+
end
246257
object cBoxAIDefault: TComboBox
247258
Left = 272
248259
Top = 38
@@ -303,12 +314,24 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
303314
OnClick = btnOpenDataFolderClick
304315
end
305316
end
317+
object mmDefaultPrompt: TMemo
318+
Left = 21
319+
Top = 139
320+
Width = 617
321+
Height = 201
322+
ScrollBars = ssVertical
323+
TabOrder = 5
324+
end
306325
end
307326
end
308327
end
309328
object TabSheet2: TTabSheet
310329
Caption = 'IAs on-line'
311330
ImageIndex = 1
331+
ExplicitLeft = 0
332+
ExplicitTop = 0
333+
ExplicitWidth = 0
334+
ExplicitHeight = 0
312335
object pnIAsOnLineBack: TPanel
313336
Left = 0
314337
Top = 0
@@ -851,6 +874,10 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
851874
object TabSheet3: TTabSheet
852875
Caption = 'IAs off-Line'
853876
ImageIndex = 2
877+
ExplicitLeft = 0
878+
ExplicitTop = 0
879+
ExplicitWidth = 0
880+
ExplicitHeight = 0
854881
object pnIAsOffLineBack: TPanel
855882
Left = 0
856883
Top = 0
@@ -1084,6 +1111,13 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
10841111
Font.Style = [fsBold]
10851112
ParentFont = False
10861113
end
1114+
object Label18: TLabel
1115+
Left = 16
1116+
Top = 187
1117+
Width = 72
1118+
Height = 13
1119+
Caption = 'Default Prompt'
1120+
end
10871121
object ckCodeCompletionUse: TCheckBox
10881122
Left = 16
10891123
Top = 5
@@ -1127,6 +1161,14 @@ object DelphiAIDevSettingsView: TDelphiAIDevSettingsView
11271161
Height = 21
11281162
TabOrder = 4
11291163
end
1164+
object mmCodeCompletionDefaultPrompt: TMemo
1165+
Left = 16
1166+
Top = 204
1167+
Width = 617
1168+
Height = 201
1169+
ScrollBars = ssVertical
1170+
TabOrder = 5
1171+
end
11301172
end
11311173
end
11321174
end

Src/Settings/DelphiAIDev.Settings.View.pas

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ TDelphiAIDevSettingsView = class(TForm)
115115
btnOpenDataFolder: TButton;
116116
edtCodeCompletionShortcutInvoke: TEdit;
117117
Label17: TLabel;
118+
Label18: TLabel;
119+
mmCodeCompletionDefaultPrompt: TMemo;
120+
Label19: TLabel;
121+
mmDefaultPrompt: TMemo;
118122
procedure FormCreate(Sender: TObject);
119123
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
120124
procedure btnCloseClick(Sender: TObject);
@@ -344,12 +348,14 @@ procedure TDelphiAIDevSettingsView.LoadSettings;
344348
ckColorHighlightCodeDelphiUse.Checked := FSettings.ColorHighlightCodeDelphiUse;
345349
ColorBoxColorHighlightCodeDelphi.Selected := FSettings.ColorHighlightCodeDelphi;
346350
Self.ConfigFieldsColorHighlightDelphi;
351+
mmDefaultPrompt.Lines.Text := FSettings.DefaultPrompt;
347352

348353
ckCodeCompletionUse.Checked := FSettings.CodeCompletionUse;
349354
cBoxCodeCompletionAIDefault.ItemIndex := Integer(FSettings.CodeCompletionAIDefault);
350355
ckCodeCompletionSuggestionColorUse.Checked := FSettings.CodeCompletionSuggestionColorUse;
351356
ColorBoxCodeCompletionSuggestionColor.Selected := FSettings.CodeCompletionSuggestionColor;
352357
edtCodeCompletionShortcutInvoke.Text := FSettings.CodeCompletionShortcutInvoke;
358+
mmCodeCompletionDefaultPrompt.Lines.Text := FSettings.CodeCompletionDefaultPrompt;
353359

354360
edtBaseUrlGemini.Text := FSettings.BaseUrlGemini;
355361
cBoxModelGemini.ItemIndex := cBoxModelGemini.Items.IndexOf(FSettings.ModelGemini);
@@ -383,12 +389,14 @@ procedure TDelphiAIDevSettingsView.SaveSettings;
383389

384390
FSettings.ColorHighlightCodeDelphiUse := ckColorHighlightCodeDelphiUse.Checked;
385391
FSettings.ColorHighlightCodeDelphi := ColorBoxColorHighlightCodeDelphi.Selected;
392+
FSettings.DefaultPrompt := mmDefaultPrompt.Lines.Text;
386393

387394
FSettings.CodeCompletionUse := ckCodeCompletionUse.Checked;
388395
FSettings.CodeCompletionAIDefault := TC4DAiAvailable(cBoxCodeCompletionAIDefault.ItemIndex);
389396
FSettings.CodeCompletionSuggestionColorUse := ckCodeCompletionSuggestionColorUse.Checked;
390397
FSettings.CodeCompletionSuggestionColor := ColorBoxCodeCompletionSuggestionColor.Selected;
391398
FSettings.CodeCompletionShortcutInvoke := edtCodeCompletionShortcutInvoke.Text;
399+
FSettings.CodeCompletionDefaultPrompt := mmCodeCompletionDefaultPrompt.Lines.Text;
392400

393401
FSettings.BaseUrlGemini := edtBaseUrlGemini.Text;
394402
FSettings.ModelGemini := cBoxModelGemini.Text;

Src/Settings/DelphiAIDev.Settings.pas

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@ TDelphiAIDevSettings = class
1818
FIELD_LanguageQuestions = 'LanguageQuestions';
1919
FIELD_AIDefault = 'AIDefault';
2020
FIELD_ColorHighlightCodeDelphiUse = 'ColorHighlightCodeDelphiUse';
21-
FIELD_ColorHighlightCodeDelphi = 'ColorHighlightCodeDelphi';
21+
FIELD_ColorHighlightCodeDelphi = 'ColorHighlightCodeDelphi';
22+
FIELD_DefaultPrompt = 'DefaultPrompt';
2223
FIELD_CodeCompletionUse = 'CodeCompletionUse';
2324
FIELD_CodeCompletionAIDefault = 'CodeCompletionAIDefault';
2425
FIELD_CodeCompletionSuggestionColorUse = 'CodeCompletionSuggestionColorUse';
2526
FIELD_CodeCompletionSuggestionColor = 'CodeCompletionSuggestionColor';
2627
FIELD_CodeCompletionShortcutInvoke = 'CodeCompletionShortcutInvoke';
28+
FIELD_CodeCompletionDefaultPrompt = 'CodeCompletionDefaultPrompt';
2729
FIELD_BaseUrlGemini = 'BaseUrlGemini';
2830
FIELD_ModelGemini = 'ModelGemini';
2931
FIELD_ApiKeyGemini = 'ApiKeyGemini';
@@ -41,12 +43,14 @@ TDelphiAIDevSettings = class
4143
FAIDefault: TC4DAiAvailable;
4244
FColorHighlightCodeDelphiUse: Boolean;
4345
FColorHighlightCodeDelphi: TColor;
46+
FDefaultPrompt: string;
4447

4548
FCodeCompletionUse: Boolean;
4649
FCodeCompletionAIDefault: TC4DAiAvailable;
4750
FCodeCompletionSuggestionColorUse: Boolean;
4851
FCodeCompletionSuggestionColor: TColor;
4952
FCodeCompletionShortcutInvoke: string;
53+
FCodeCompletionDefaultPrompt: string;
5054

5155
FBaseUrlGemini: string;
5256
FModelGemini: string;
@@ -79,12 +83,14 @@ TDelphiAIDevSettings = class
7983
property AIDefault: TC4DAiAvailable read FAIDefault write FAIDefault;
8084
property ColorHighlightCodeDelphiUse: Boolean read FColorHighlightCodeDelphiUse write FColorHighlightCodeDelphiUse;
8185
property ColorHighlightCodeDelphi: TColor read FColorHighlightCodeDelphi write FColorHighlightCodeDelphi;
86+
property DefaultPrompt: string read FDefaultPrompt write FDefaultPrompt;
8287

8388
property CodeCompletionUse: Boolean read FCodeCompletionUse write FCodeCompletionUse;
8489
property CodeCompletionAIDefault: TC4DAiAvailable read FCodeCompletionAIDefault write FCodeCompletionAIDefault;
8590
property CodeCompletionSuggestionColorUse: Boolean read FCodeCompletionSuggestionColorUse write FCodeCompletionSuggestionColorUse;
8691
property CodeCompletionSuggestionColor: TColor read FCodeCompletionSuggestionColor write FCodeCompletionSuggestionColor;
8792
property CodeCompletionShortcutInvoke: string read FCodeCompletionShortcutInvoke write FCodeCompletionShortcutInvoke;
93+
property CodeCompletionDefaultPrompt: string read FCodeCompletionDefaultPrompt write FCodeCompletionDefaultPrompt;
8894

8995
property BaseUrlGemini: string read FBaseUrlGemini write FBaseUrlGemini;
9096
property ModelGemini: string read FModelGemini write FModelGemini;
@@ -127,12 +133,14 @@ procedure TDelphiAIDevSettings.LoadDefaults;
127133

128134
FColorHighlightCodeDelphiUse := False;
129135
FColorHighlightCodeDelphi := clNone;
136+
FDefaultPrompt := '';
130137

131138
FCodeCompletionUse := False;
132139
FCodeCompletionAIDefault := TC4DAiAvailable.Gemini;
133140
FCodeCompletionSuggestionColorUse := False;
134141
FCodeCompletionSuggestionColor := TConsts.CODE_COMPLETION_SUGGESTION_COLOR;
135142
FCodeCompletionShortcutInvoke := TConsts.CODE_COMPLETION_SHORTCUT_INVOKE;
143+
FCodeCompletionDefaultPrompt := '';
136144

137145
FBaseUrlGemini := TConsts.BASE_URL_GEMINI_DEFAULT;
138146
FModelGemini := TConsts.MODEL_GEMINI_DEFAULT;
@@ -167,12 +175,14 @@ procedure TDelphiAIDevSettings.SaveData;
167175

168176
LReg.WriteBool(FIELD_ColorHighlightCodeDelphiUse, FColorHighlightCodeDelphiUse);
169177
LReg.WriteString(FIELD_ColorHighlightCodeDelphi, ColorToString(FColorHighlightCodeDelphi));
178+
LReg.WriteString(FIELD_DefaultPrompt, FDefaultPrompt);
170179

171180
LReg.WriteBool(FIELD_CodeCompletionUse, FCodeCompletionUse);
172181
LReg.WriteInteger(FIELD_CodeCompletionAIDefault, Integer(FCodeCompletionAIDefault));
173182
LReg.WriteBool(FIELD_CodeCompletionSuggestionColorUse, FCodeCompletionSuggestionColorUse);
174183
LReg.WriteString(FIELD_CodeCompletionSuggestionColor, ColorToString(FCodeCompletionSuggestionColor));
175184
LReg.WriteString(FIELD_CodeCompletionShortcutInvoke, FCodeCompletionShortcutInvoke);
185+
LReg.WriteString(FIELD_CodeCompletionDefaultPrompt, FCodeCompletionDefaultPrompt);
176186

177187
LReg.WriteString(FIELD_BaseUrlGemini, FBaseUrlGemini);
178188
LReg.WriteString(FIELD_ModelGemini, FModelGemini);
@@ -222,6 +232,9 @@ procedure TDelphiAIDevSettings.LoadData;
222232
FColorHighlightCodeDelphi := TUtils.StringToColorDef(LReg.ReadString(FIELD_ColorHighlightCodeDelphi),
223233
TUtilsOTA.ActiveThemeForCode);
224234

235+
if LReg.ValueExists(FIELD_DefaultPrompt) then
236+
FDefaultPrompt := LReg.ReadString(FIELD_DefaultPrompt);
237+
225238
//Code Completion
226239
if LReg.ValueExists(FIELD_CodeCompletionUse) then
227240
FCodeCompletionUse := LReg.ReadBool(FIELD_CodeCompletionUse);
@@ -239,6 +252,9 @@ procedure TDelphiAIDevSettings.LoadData;
239252
if LReg.ValueExists(FIELD_CodeCompletionShortcutInvoke) then
240253
FCodeCompletionShortcutInvoke := LReg.ReadString(FIELD_CodeCompletionShortcutInvoke);
241254

255+
if LReg.ValueExists(FIELD_CodeCompletionDefaultPrompt) then
256+
FCodeCompletionDefaultPrompt := LReg.ReadString(FIELD_CodeCompletionDefaultPrompt);
257+
242258
//GEMINI
243259
if LReg.ValueExists(FIELD_BaseUrlGemini) then
244260
FBaseUrlGemini := LReg.ReadString(FIELD_BaseUrlGemini);

0 commit comments

Comments
 (0)