Skip to content

Commit 27a587e

Browse files
committed
feature/add-config-color-for-code
1 parent 9c32e06 commit 27a587e

4 files changed

Lines changed: 72 additions & 3 deletions

File tree

Src/Chat/DelphiCopilot.Chat.View.pas

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,12 @@ procedure TDelphiCopilotChatView.AddResponseComplete(const AStrings: TStrings);
359359
end;
360360

361361
if FCodeStarted then
362-
mmReturn.SelAttributes.Color := TUtilsOTA.ActiveThemeForCode
362+
begin
363+
if (FSettings.ColorHighlightCodeDelphiUse) and (FSettings.ColorHighlightCodeDelphi <> clNone) then
364+
mmReturn.SelAttributes.Color := FSettings.ColorHighlightCodeDelphi
365+
else
366+
mmReturn.SelAttributes.Color := TUtilsOTA.ActiveThemeForCode;
367+
end
363368
else
364369
mmReturn.SelAttributes.Color := TUtilsOTA.ActiveThemeColorDefault;
365370

Src/Settings/DelphiCopilot.Settings.View.dfm

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ object DelphiCopilotSettingsView: TDelphiCopilotSettingsView
6969
Caption = 'Confirm'
7070
TabOrder = 0
7171
OnClick = btnConfirmClick
72+
ExplicitTop = 3
7273
end
7374
object btnClose: TButton
7475
AlignWithMargins = True
@@ -273,6 +274,22 @@ object DelphiCopilotSettingsView: TDelphiCopilotSettingsView
273274
'Gemini'
274275
'OpenAI (ChatGPT)')
275276
end
277+
object ColorBoxColorHighlightCodeDelphi: TColorBox
278+
Left = 472
279+
Top = 38
280+
Width = 133
281+
Height = 22
282+
TabOrder = 1
283+
end
284+
object ckColorHighlightCodeDelphiUse: TCheckBox
285+
Left = 272
286+
Top = 40
287+
Width = 197
288+
Height = 17
289+
Caption = 'Color to highlight Delphi/Pascal code'
290+
TabOrder = 2
291+
OnClick = ckColorHighlightCodeDelphiUseClick
292+
end
276293
end
277294
object gBoxOpenAI: TGroupBox
278295
Left = 0

Src/Settings/DelphiCopilot.Settings.View.pas

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ interface
1515
Vcl.StdCtrls,
1616
Vcl.ExtCtrls,
1717
DelphiCopilot.Settings,
18-
DelphiCopilot.Types, Vcl.Buttons;
18+
DelphiCopilot.Types,
19+
Vcl.Buttons;
1920

2021
type
2122
TDelphiCopilotSettingsView = class(TForm)
@@ -50,6 +51,8 @@ TDelphiCopilotSettingsView = class(TForm)
5051
btnApiKeyOpenAIView: TSpeedButton;
5152
lbLink04: TLabel;
5253
lbRestoreDefaults: TLabel;
54+
ColorBoxColorHighlightCodeDelphi: TColorBox;
55+
ckColorHighlightCodeDelphiUse: TCheckBox;
5356
procedure FormCreate(Sender: TObject);
5457
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
5558
procedure btnCloseClick(Sender: TObject);
@@ -60,11 +63,13 @@ TDelphiCopilotSettingsView = class(TForm)
6063
procedure btnApiKeyOpenAIViewClick(Sender: TObject);
6164
procedure FormClose(Sender: TObject; var Action: TCloseAction);
6265
procedure lbRestoreDefaultsClick(Sender: TObject);
66+
procedure ckColorHighlightCodeDelphiUseClick(Sender: TObject);
6367
private
6468
FSettings: TDelphiCopilotSettings;
6569
procedure SaveSettings;
6670
procedure LoadSettings;
6771
procedure ConfigScreen;
72+
procedure ConfigFieldsColorHighlightDelphi;
6873
public
6974

7075
end;
@@ -165,10 +170,24 @@ procedure TDelphiCopilotSettingsView.btnConfirmClick(Sender: TObject);
165170
Self.ModalResult := mrOk;
166171
end;
167172

173+
procedure TDelphiCopilotSettingsView.ckColorHighlightCodeDelphiUseClick(Sender: TObject);
174+
begin
175+
Self.ConfigFieldsColorHighlightDelphi;
176+
end;
177+
178+
procedure TDelphiCopilotSettingsView.ConfigFieldsColorHighlightDelphi;
179+
begin
180+
ColorBoxColorHighlightCodeDelphi.Enabled := ckColorHighlightCodeDelphiUse.Checked;
181+
end;
182+
168183
procedure TDelphiCopilotSettingsView.LoadSettings;
169184
begin
170185
cBoxAIDefault.ItemIndex := Integer(FSettings.AIDefault);
171186

187+
ckColorHighlightCodeDelphiUse.Checked := FSettings.ColorHighlightCodeDelphiUse;
188+
ColorBoxColorHighlightCodeDelphi.Selected := FSettings.ColorHighlightCodeDelphi;
189+
Self.ConfigFieldsColorHighlightDelphi;
190+
172191
edtBaseUrlGemini.Text := FSettings.BaseUrlGemini;
173192
cBoxModelGemini.ItemIndex := cBoxModelGemini.Items.IndexOf(FSettings.ModelGemini);
174193
edtApiKeyGemini.Text := FSettings.ApiKeyGemini;
@@ -182,6 +201,9 @@ procedure TDelphiCopilotSettingsView.SaveSettings;
182201
begin
183202
FSettings.AIDefault := TAIsAvailable(cBoxAIDefault.ItemIndex);
184203

204+
FSettings.ColorHighlightCodeDelphiUse := ckColorHighlightCodeDelphiUse.Checked;
205+
FSettings.ColorHighlightCodeDelphi := ColorBoxColorHighlightCodeDelphi.Selected;
206+
185207
FSettings.BaseUrlGemini := edtBaseUrlGemini.Text;
186208
FSettings.ModelGemini := cBoxModelGemini.Text;
187209
FSettings.ApiKeyGemini := edtApiKeyGemini.Text;

Src/Settings/DelphiCopilot.Settings.pas

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,19 @@ interface
66
System.SysUtils,
77
System.Win.Registry,
88
Winapi.Windows,
9+
Vcl.Graphics,
910
DelphiCopilot.Types,
10-
DelphiCopilot.Consts;
11+
DelphiCopilot.Consts,
12+
DelphiCopilot.Utils,
13+
DelphiCopilot.Utils.OTA;
1114

1215
type
1316
TDelphiCopilotSettings = class
1417
private
1518
FAIDefault: TAIsAvailable;
19+
FColorHighlightCodeDelphiUse: Boolean;
20+
FColorHighlightCodeDelphi: TColor;
21+
1622
FBaseUrlGemini: string;
1723
FModelGemini: string;
1824
FApiKeyGemini: string;
@@ -23,6 +29,8 @@ TDelphiCopilotSettings = class
2329

2430
const
2531
FIELD_AIDefault = 'AIDefault';
32+
FIELD_ColorHighlightCodeDelphiUse = 'ColorHighlightCodeDelphiUse';
33+
FIELD_ColorHighlightCodeDelphi = 'ColorHighlightCodeDelphi';
2634
FIELD_BaseUrlGemini = 'BaseUrlGemini';
2735
FIELD_ModelGemini = 'ModelGemini';
2836
FIELD_ApiKeyGemini = 'ApiKeyGemini';
@@ -38,6 +46,9 @@ TDelphiCopilotSettings = class
3846
procedure LoadData;
3947

4048
property AIDefault: TAIsAvailable read FAIDefault write FAIDefault;
49+
property ColorHighlightCodeDelphiUse: Boolean read FColorHighlightCodeDelphiUse write FColorHighlightCodeDelphiUse;
50+
property ColorHighlightCodeDelphi: TColor read FColorHighlightCodeDelphi write FColorHighlightCodeDelphi;
51+
4152

4253
property BaseUrlGemini: string read FBaseUrlGemini write FBaseUrlGemini;
4354
property ModelGemini: string read FModelGemini write FModelGemini;
@@ -69,6 +80,9 @@ procedure TDelphiCopilotSettings.LoadDefaults;
6980
begin
7081
FAIDefault := TAIsAvailable.Gemini;
7182

83+
FColorHighlightCodeDelphiUse := False;
84+
FColorHighlightCodeDelphi := clNone;
85+
7286
FBaseUrlGemini := TC4DConsts.BASE_URL_GEMINI_DEFAULT;
7387
FModelGemini := TC4DConsts.MODEL_GEMINI_DEFAULT;
7488
FApiKeyGemini := '';
@@ -91,6 +105,9 @@ procedure TDelphiCopilotSettings.SaveData;
91105

92106
LReg.WriteInteger(FIELD_AIDefault, Integer(FAIDefault));
93107

108+
LReg.WriteBool(FIELD_ColorHighlightCodeDelphiUse, FColorHighlightCodeDelphiUse);
109+
LReg.WriteString(FIELD_ColorHighlightCodeDelphi, ColorToString(FColorHighlightCodeDelphi));
110+
94111
LReg.WriteString(FIELD_BaseUrlGemini, FBaseUrlGemini);
95112
LReg.WriteString(FIELD_ModelGemini, FModelGemini);
96113
LReg.WriteString(FIELD_ApiKeyGemini, FApiKeyGemini);
@@ -120,6 +137,14 @@ procedure TDelphiCopilotSettings.LoadData;
120137
if LReg.ValueExists(FIELD_AIDefault) then
121138
FAIDefault := TAIsAvailable(LReg.ReadInteger(FIELD_AIDefault));
122139

140+
//COLOR FOR HIGHLIGHT CODE DELPHI/PASCAL
141+
if LReg.ValueExists(FIELD_ColorHighlightCodeDelphiUse) then
142+
FColorHighlightCodeDelphiUse := LReg.ReadBool(FIELD_ColorHighlightCodeDelphiUse);
143+
144+
if LReg.ValueExists(FIELD_ColorHighlightCodeDelphi) then
145+
FColorHighlightCodeDelphi := TUtils.StringToColorDef(LReg.ReadString(FIELD_ColorHighlightCodeDelphi),
146+
TUtilsOTA.ActiveThemeForCode);
147+
123148
//GEMINI
124149
if LReg.ValueExists(FIELD_BaseUrlGemini) then
125150
FBaseUrlGemini := LReg.ReadString(FIELD_BaseUrlGemini);

0 commit comments

Comments
 (0)