Skip to content

Commit e785c91

Browse files
committed
refactor/separado-key-tab
1 parent 18c009b commit e785c91

File tree

5 files changed

+64
-13
lines changed

5 files changed

+64
-13
lines changed

Package/DelphiAIDeveloper.dpk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ contains
112112
DelphiAIDev.IDE.OTAEditorNotifier in '..\Src\IDE\OTAEditorNotifier\DelphiAIDev.IDE.OTAEditorNotifier.pas',
113113
DelphiAIDev.IDE.NTAEditViewNotifier in '..\Src\IDE\NTAEditViewNotifier\DelphiAIDev.IDE.NTAEditViewNotifier.pas',
114114
DelphiAIDev.CodeCompletion.Search in '..\Src\CodeCompletion\DelphiAIDev.CodeCompletion.Search.pas',
115-
DelphiAIDev.Test.Client in '..\Src\Test\DelphiAIDev.Test.Client.pas';
115+
DelphiAIDev.Test.Client in '..\Src\Test\DelphiAIDev.Test.Client.pas',
116+
DelphiAIDev.CodeCompletion.KeyTab in '..\Src\CodeCompletion\DelphiAIDev.CodeCompletion.KeyTab.pas';
116117

117118
end.

Package/DelphiAIDeveloper.dproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@
228228
<DCCReference Include="..\Src\IDE\NTAEditViewNotifier\DelphiAIDev.IDE.NTAEditViewNotifier.pas"/>
229229
<DCCReference Include="..\Src\CodeCompletion\DelphiAIDev.CodeCompletion.Search.pas"/>
230230
<DCCReference Include="..\Src\Test\DelphiAIDev.Test.Client.pas"/>
231+
<DCCReference Include="..\Src\CodeCompletion\DelphiAIDev.CodeCompletion.KeyTab.pas"/>
231232
<RcItem Include="Img\c4d_Logo.bmp">
232233
<ResourceType>BITMAP</ResourceType>
233234
<ResourceId>c4d_Logo</ResourceId>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
unit DelphiAIDev.CodeCompletion.KeyTab;
2+
3+
interface
4+
5+
uses
6+
System.SysUtils,
7+
System.Classes,
8+
ToolsAPI,
9+
DelphiAIDev.CodeCompletion.Vars;
10+
11+
type
12+
IDelphiAIDevCodeCompletionKeyTab = interface
13+
['{A032D6DE-E66D-4088-B384-5FEE82F65160}']
14+
procedure Process(const AContext: IOTAKeyContext);
15+
end;
16+
17+
TDelphiAIDevCodeCompletionKeyTab = class(TInterfacedObject, IDelphiAIDevCodeCompletionKeyTab)
18+
private
19+
FVars: TDelphiAIDevCodeCompletionVars;
20+
protected
21+
procedure Process(const AContext: IOTAKeyContext);
22+
public
23+
class function New: IDelphiAIDevCodeCompletionKeyTab;
24+
constructor Create;
25+
end;
26+
27+
implementation
28+
29+
class function TDelphiAIDevCodeCompletionKeyTab.New: IDelphiAIDevCodeCompletionKeyTab;
30+
begin
31+
Result := Self.Create;
32+
end;
33+
34+
constructor TDelphiAIDevCodeCompletionKeyTab.Create;
35+
begin
36+
FVars := TDelphiAIDevCodeCompletionVars.GetInstance;
37+
end;
38+
39+
procedure TDelphiAIDevCodeCompletionKeyTab.Process(const AContext: IOTAKeyContext);
40+
var
41+
LText: string;
42+
i: Integer;
43+
begin
44+
LText := '';
45+
for i := 0 to Pred(FVars.Contents.Count) do
46+
LText := LText + FVars.Contents[i].Trim + sLineBreak;
47+
48+
AContext.EditBuffer.EditPosition.InsertText(LText.Trim);
49+
//Context.EditBuffer.EditPosition.Move(TDelphiAIDevCodeCompletionVars.GetInstance.LineEnd, 20);
50+
51+
FVars.GetInstance.Clear;
52+
end;
53+
54+
end.

Src/KeyboardBinding/DelphiAIDev.KeyboardBinding.pas

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ interface
1010
ToolsAPI,
1111
DelphiAIDev.Utils.CnWizard,
1212
DelphiAIDev.Chat.View,
13-
DelphiAIDev.CodeCompletion.Search;
13+
DelphiAIDev.CodeCompletion.Search,
14+
DelphiAIDev.CodeCompletion.KeyTab;
1415

1516
type
1617
TDelphiAIDevKeyboardBinding = class(TNotifierObject, IOTAKeyboardBinding)
@@ -101,23 +102,13 @@ procedure TDelphiAIDevKeyboardBinding.KeyProcBlockReturnAndAlt(const Context: IO
101102
end;
102103

103104
procedure TDelphiAIDevKeyboardBinding.KeyTab(const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
104-
var
105-
LText: string;
106-
i: Integer;
107105
begin
108106
if KeyCode <> Shortcut(VK_TAB, []) then
109107
Exit;
110108

111109
if TDelphiAIDevCodeCompletionVars.GetInstance.LineIni > 0 then
112110
begin
113-
LText := '';
114-
for i := 0 to Pred(TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Count) do
115-
LText := LText + TDelphiAIDevCodeCompletionVars.GetInstance.Contents[i].Trim + sLineBreak;
116-
117-
Context.EditBuffer.EditPosition.InsertText(LText.Trim);
118-
//Context.EditBuffer.EditPosition.Move(TDelphiAIDevCodeCompletionVars.GetInstance.LineEnd, 20);
119-
120-
TDelphiAIDevCodeCompletionVars.GetInstance.Clear;
111+
TDelphiAIDevCodeCompletionKeyTab.New.Process(Context);
121112
BindingResult := TKeyBindingResult.krHandled;
122113
end
123114
else

Src/Test/DelphiAIDev.Test.pas

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,9 @@ TDelphiAIDevTest = class
3030

3131
implementation
3232

33+
procedure TDelphiAIDevTest.Clear;
34+
begin
35+
36+
end;
3337

3438
end.

0 commit comments

Comments
 (0)