@@ -5,6 +5,8 @@ interface
5
5
uses
6
6
System.SysUtils,
7
7
System.Classes,
8
+ Vcl.Forms,
9
+ Vcl.Controls,
8
10
ToolsAPI,
9
11
DelphiAIDev.Types,
10
12
DelphiAIDev.Consts,
@@ -66,42 +68,47 @@ procedure TDelphiAIDevCodeCompletionSearch.Process(const AContext: IOTAKeyContex
66
68
begin
67
69
FSettings.ValidateFillingSelectedAICodeCompletion(TShowMsg.No);
68
70
69
- FQuestions.Clear;
70
- FQuestions.Add(FSettings.LanguageQuestions.GetLanguageDefinition);
71
- FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeCompletionSuggestion);
72
- FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeOnly);
73
-
74
- LIOTAEditPosition := AContext.EditBuffer.EditPosition;
75
- LIOTAEditPosition.InsertText(TConsts.TAG_CODE_COMPLETION);
71
+ Screen.Cursor := crHourGlass;
76
72
try
77
- FQuestions.Add(TUtilsOTA.GetSelectedBlockOrAllCodeUnit.Trim);
73
+ FQuestions.Clear;
74
+ FQuestions.Add(FSettings.LanguageQuestions.GetLanguageDefinition);
75
+ FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeCompletionSuggestion);
76
+ FQuestions.Add(FSettings.LanguageQuestions.GetMsgCodeOnly);
77
+
78
+ LIOTAEditPosition := AContext.EditBuffer.EditPosition;
79
+ LIOTAEditPosition.InsertText(TConsts.TAG_CODE_COMPLETION);
80
+ try
81
+ FQuestions.Add(TUtilsOTA.GetSelectedBlockOrAllCodeUnit.Trim);
82
+ finally
83
+ LIOTAEditPosition.BackspaceDelete(TConsts.TAG_CODE_COMPLETION.Length);
84
+ end ;
85
+
86
+ try
87
+ FAI.AiUse(FSettings.CodeCompletionAIDefault).ProcessSend(FQuestions.Text);
88
+ except
89
+ Abort;
90
+ end ;
91
+
92
+ FVars.Contents.Text := TUtils.ConfReturnAI(FAI.Response.Text);
93
+
94
+ LRow := LIOTAEditPosition.Row;
95
+ LColumn := LIOTAEditPosition.Column;
96
+
97
+ FVars.Row := LRow;
98
+ FVars.Column := LColumn;
99
+ FVars.LineIni := LRow;
100
+ FVars.LineEnd := FVars.LineIni + FVars.Contents.Count;
101
+
102
+ LText := ' ' ;
103
+ for i := 0 to Pred(FVars.Contents.Count) do
104
+ LText := LText + sLineBreak;
105
+
106
+ LIOTAEditPosition.InsertText(LText); // .TrimRight + sLineBreak);
107
+ LIOTAEditPosition.Move(FVars.LineIni, LColumn);
78
108
finally
79
- LIOTAEditPosition.BackspaceDelete(TConsts.TAG_CODE_COMPLETION.Length) ;
109
+ Screen.Cursor := crDefault ;
80
110
end ;
81
111
82
- try
83
- FAI.AiUse(FSettings.CodeCompletionAIDefault).ProcessSend(FQuestions.Text);
84
- except
85
- Abort;
86
- end ;
87
-
88
- FVars.Contents.Text := TUtils.ConfReturnAI(FAI.Response.Text);
89
-
90
- LRow := LIOTAEditPosition.Row;
91
- LColumn := LIOTAEditPosition.Column;
92
-
93
- FVars.Row := LRow;
94
- FVars.Column := LColumn;
95
- FVars.LineIni := LRow;
96
- FVars.LineEnd := FVars.LineIni + FVars.Contents.Count;
97
-
98
- LText := ' ' ;
99
- for i := 0 to Pred(FVars.Contents.Count) do
100
- LText := LText + sLineBreak;
101
-
102
- LIOTAEditPosition.InsertText(LText); // .TrimRight + sLineBreak);
103
- LIOTAEditPosition.Move(FVars.LineIni, LColumn);
104
-
105
112
// LIOTAEditPositionMoveBOL;
106
113
// //LTextCurrentLineOrBlock := Context.EditBuffer.EditBlock.Text;
107
114
// LTextCurrentLineOrBlock := GetCurrentLineOrBlock(CnOtaGetTopMostEditView);
0 commit comments