Skip to content

Commit ad03b78

Browse files
committed
add-settings-code-complet
1 parent e785c91 commit ad03b78

10 files changed

+1290
-896
lines changed

Src/Chat/DelphiAIDev.Chat.View.pas

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -607,13 +607,13 @@ procedure TDelphiAIDevChatView.pMenuCurrentAIPopup(Sender: TObject);
607607
Groq1.Checked := False;
608608
Ollama1.Checked := False;
609609
case FSettings.AIDefault of
610-
TC4DAIsAvailable.Gemini:
610+
TC4DAiAvailable.Gemini:
611611
Gemini1.Checked := True;
612-
TC4DAIsAvailable.OpenAI:
612+
TC4DAiAvailable.OpenAI:
613613
ChatGPT1.Checked := True;
614-
TC4DAIsAvailable.Groq:
614+
TC4DAiAvailable.Groq:
615615
Groq1.Checked := True;
616-
TC4DAIsAvailable.Ollama:
616+
TC4DAiAvailable.Ollama:
617617
Ollama1.Checked := True;
618618
end;
619619
end;
@@ -623,13 +623,13 @@ procedure TDelphiAIDevChatView.ConfLabelCurrentAI;
623623
lbCurrentAI.Caption := FSettings.AIDefault.ToString;
624624

625625
case FSettings.AIDefault of
626-
TC4DAIsAvailable.Gemini:
626+
TC4DAiAvailable.Gemini:
627627
lbCurrentAI.Hint := FSettings.ModelGemini;
628-
TC4DAIsAvailable.OpenAI:
628+
TC4DAiAvailable.OpenAI:
629629
lbCurrentAI.Hint := FSettings.ModelOpenAI;
630-
TC4DAIsAvailable.Groq:
630+
TC4DAiAvailable.Groq:
631631
lbCurrentAI.Hint := FSettings.ModelGroq;
632-
TC4DAIsAvailable.Ollama:
632+
TC4DAiAvailable.Ollama:
633633
lbCurrentAI.Hint := FSettings.ModelOllama;
634634
end;
635635

@@ -646,7 +646,7 @@ procedure TDelphiAIDevChatView.Gemini1Click(Sender: TObject);
646646
if not(LTag in [0, 1, 2, 3])then
647647
Exit;
648648

649-
FSettings.AIDefault := TC4DAIsAvailable(LTag);
649+
FSettings.AIDefault := TC4DAiAvailable(LTag);
650650
FSettings.SaveData;
651651
Self.ConfLabelCurrentAI;
652652
end;

Src/Chat/DelphiAIDev.Chat.pas

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ procedure TDelphiAIDevChat.ProcessSend(const AQuestion: string);
4848
FResponse.Clear;
4949

5050
case FSettings.AIDefault of
51-
TC4DAIsAvailable.Gemini:
51+
TC4DAiAvailable.Gemini:
5252
FResponse.Text := TDelphiAIDevAIGemini.New(FSettings).GetResponse(LQuestion);
53-
TC4DAIsAvailable.OpenAI:
53+
TC4DAiAvailable.OpenAI:
5454
FResponse.Text := TDelphiAIDevAIChatGPT.New(FSettings).GetResponse(LQuestion);
55-
TC4DAIsAvailable.Groq:
55+
TC4DAiAvailable.Groq:
5656
FResponse.Text := TDelphiAIDevAIGroq.New(FSettings).GetResponse(LQuestion);
57-
TC4DAIsAvailable.Ollama:
57+
TC4DAiAvailable.Ollama:
5858
FResponse.Text := TDelphiAIDevAIOllama.New(FSettings).GetResponse(LQuestion);
5959
else
6060
FResponse.Text := 'Default AI not reported in Delphi AI Developer settings';

Src/Consts/DelphiAIDev.Consts.pas

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ TConsts = class
1616
GITHUB_Code4Delphi = 'https://github.com/Code4Delphi';
1717
GITHUB_PROJECT = 'https://github.com/Code4Delphi/Delphi-AI-Developer';
1818
APPLICATION_JSON = 'application/json';
19+
CODE_COMPLETION_SUGGESTION_COLOR = $777777;
20+
CODE_COMPLETION_SHORTCUT_INVOKE = 'Alt+Enter';
1921

2022
MARK_BEGIN_DELPHI = '```delphi';
2123
MARK_BEGIN_PASCAL = '```objectpascal';

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -613,13 +613,13 @@ procedure TDelphiAIDevDBChatView.pMenuCurrentAIPopup(Sender: TObject);
613613
Groq1.Checked := False;
614614
Ollama1.Checked := False;
615615
case FSettings.AIDefault of
616-
TC4DAIsAvailable.Gemini:
616+
TC4DAiAvailable.Gemini:
617617
Gemini1.Checked := True;
618-
TC4DAIsAvailable.OpenAI:
618+
TC4DAiAvailable.OpenAI:
619619
ChatGPT1.Checked := True;
620-
TC4DAIsAvailable.Groq:
620+
TC4DAiAvailable.Groq:
621621
Groq1.Checked := True;
622-
TC4DAIsAvailable.Ollama:
622+
TC4DAiAvailable.Ollama:
623623
Ollama1.Checked := True;
624624
end;
625625
end;
@@ -629,13 +629,13 @@ procedure TDelphiAIDevDBChatView.ConfLabelCurrentAI;
629629
lbCurrentAI.Caption := FSettings.AIDefault.ToString;
630630

631631
case FSettings.AIDefault of
632-
TC4DAIsAvailable.Gemini:
632+
TC4DAiAvailable.Gemini:
633633
lbCurrentAI.Hint := FSettings.ModelGemini;
634-
TC4DAIsAvailable.OpenAI:
634+
TC4DAiAvailable.OpenAI:
635635
lbCurrentAI.Hint := FSettings.ModelOpenAI;
636-
TC4DAIsAvailable.Groq:
636+
TC4DAiAvailable.Groq:
637637
lbCurrentAI.Hint := FSettings.ModelGroq;
638-
TC4DAIsAvailable.Ollama:
638+
TC4DAiAvailable.Ollama:
639639
lbCurrentAI.Hint := FSettings.ModelOllama;
640640
end;
641641

@@ -652,7 +652,7 @@ procedure TDelphiAIDevDBChatView.Gemini1Click(Sender: TObject);
652652
if not(LTag in [0, 1, 2, 3])then
653653
Exit;
654654

655-
FSettings.AIDefault := TC4DAIsAvailable(LTag);
655+
FSettings.AIDefault := TC4DAiAvailable(LTag);
656656
FSettings.SaveData;
657657
Self.ConfLabelCurrentAI;
658658
end;

Src/IDE/NTAEditViewNotifier/DelphiAIDev.IDE.NTAEditViewNotifier.pas

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ interface
1616
DelphiAIDev.Utils.OTA,
1717
DelphiAIDev.Consts,
1818
DelphiAIDev.CodeCompletion.Vars,
19+
DelphiAIDev.Settings,
1920
ToolsAPI;
2021

2122
type
@@ -95,30 +96,16 @@ procedure TDelphiAIDevIDENTAEditViewNotifier.EditorIdle(const View: IOTAEditView
9596
begin
9697
TUtilsOTA.GetCursorPosition(LRow, LColumn);
9798

98-
//TUtils.AddLog(Format('EditorIdle - %d (%d) - %d (%d) - %s ', [LVars.Row, LRow, LVars.Column, LColumn, DateTimeToStr(Now)]));
99-
10099
if (LRow <> LVars.Row) or (LColumn <> LVars.Column) then
101100
begin
102101
LVars.LineIni := 0;
103102
LVars.Clear;
104103
end;
105-
106-
//TUtils.AddLog('EditorIdle ' + BoolToStr(LVars.ClearNext, True));
107-
108-
// if LVars.ClearNext then
109-
// begin
110-
// LVars.Clear;
111-
// end
112-
// else
113-
// LVars.ClearNext := True;
114-
115-
//View.AddNotifier()
116-
//View.GetEditWindow.Form.Repaint;
117104
end;
118105

119106
procedure TDelphiAIDevIDENTAEditViewNotifier.EndPaint(const View: IOTAEditView);
120107
begin
121-
//TUtils.AddLog('EndPaint');
108+
122109
end;
123110

124111
procedure TDelphiAIDevIDENTAEditViewNotifier.Modified;
@@ -147,6 +134,8 @@ procedure TDelphiAIDevIDENTAEditViewNotifier.PaintLine(const View: IOTAEditView;
147134
begin
148135
Canvas.Brush.Style := bsClear;
149136
Canvas.Font.Color := $777777; //$666666;
137+
if TDelphiAIDevSettings.GetInstance.CodeCompletionSuggestionColorUse then
138+
Canvas.Font.Color := TDelphiAIDevSettings.GetInstance.CodeCompletionSuggestionColor;
150139

151140
try
152141
LLineText := LVars.Contents[LineNumber - LVars.LineIni];

Src/KeyboardBinding/DelphiAIDev.KeyboardBinding.pas

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ interface
88
Winapi.Windows,
99
Vcl.Menus,
1010
ToolsAPI,
11+
DelphiAIDev.Consts,
1112
DelphiAIDev.Utils.CnWizard,
1213
DelphiAIDev.Chat.View,
1314
DelphiAIDev.CodeCompletion.Search,
14-
DelphiAIDev.CodeCompletion.KeyTab;
15+
DelphiAIDev.CodeCompletion.KeyTab,
16+
DelphiAIDev.Settings;
1517

1618
type
1719
TDelphiAIDevKeyboardBinding = class(TNotifierObject, IOTAKeyboardBinding)
@@ -83,11 +85,20 @@ function TDelphiAIDevKeyboardBinding.GetName: string;
8385
end;
8486

8587
procedure TDelphiAIDevKeyboardBinding.BindKeyboard(const BindingServices: IOTAKeyBindingServices);
88+
var
89+
LShortcut: string;
8690
begin
8791
// if TUtilsOTA.CurrentProjectIsDelphiAIDeveloperDPROJ then
8892
// Exit;
8993

90-
BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [ssAlt])], Self.KeyProcBlockReturnAndAlt, nil);
94+
//BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [ssAlt])], Self.KeyProcBlockReturnAndAlt, nil);
95+
LShortcut := TConsts.CODE_COMPLETION_SHORTCUT_INVOKE;
96+
if not(Trim(TDelphiAIDevSettings.GetInstance.CodeCompletionShortcutInvoke).IsEmpty) then
97+
LShortcut := TDelphiAIDevSettings.GetInstance.CodeCompletionShortcutInvoke;
98+
99+
TUtils.ShowMsg(LShortcut);
100+
BindingServices.AddKeyBinding([TextToShortCut(LShortcut)], Self.KeyProcBlockReturnAndAlt, nil);
101+
91102
BindingServices.AddKeyBinding([Shortcut(VK_TAB, [])], Self.KeyTab, nil);
92103
BindingServices.AddKeyBinding([Shortcut(VK_HOME, [ssAlt])], Self.KeyAltHome, nil);
93104
end;

0 commit comments

Comments
 (0)