@@ -5,6 +5,8 @@ interface
55uses
66 System.SysUtils,
77 System.Classes,
8+ Vcl.Forms,
9+ Vcl.Controls,
810 ToolsAPI,
911 DelphiAIDev.Types,
1012 DelphiAIDev.Consts,
@@ -66,42 +68,47 @@ procedure TDelphiAIDevCodeCompletionSearch.Process(const AContext: IOTAKeyContex
6668begin
6769 FSettings.ValidateFillingSelectedAICodeCompletion(TShowMsg.No);
6870
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;
7672 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);
78108 finally
79- LIOTAEditPosition.BackspaceDelete(TConsts.TAG_CODE_COMPLETION.Length) ;
109+ Screen.Cursor := crDefault ;
80110 end ;
81111
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-
105112 // LIOTAEditPositionMoveBOL;
106113 // //LTextCurrentLineOrBlock := Context.EditBuffer.EditBlock.Text;
107114 // LTextCurrentLineOrBlock := GetCurrentLineOrBlock(CnOtaGetTopMostEditView);
0 commit comments