@@ -14,8 +14,11 @@ interface
14
14
type
15
15
TDelphiAIDevKeyboardBinding = class (TNotifierObject, IOTAKeyboardBinding)
16
16
private
17
+ procedure KeyAltHome (const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
18
+ procedure KeyTab (const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
17
19
// procedure KeyProcBlockReturn(const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
18
20
procedure KeyProcBlockReturnAndAlt (const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
21
+ procedure AddBlockText ;
19
22
protected
20
23
function GetBindingType : TBindingType;
21
24
function GetDisplayName : string;
@@ -31,7 +34,8 @@ implementation
31
34
32
35
uses
33
36
DelphiAIDev.Utils,
34
- DelphiAIDev.Utils.OTA;
37
+ DelphiAIDev.Utils.OTA,
38
+ DelphiAIDev.CodeCompletion.Vars;
35
39
36
40
var
37
41
Index: Integer = -1 ;
@@ -82,6 +86,9 @@ procedure TDelphiAIDevKeyboardBinding.BindKeyboard(const BindingServices: IOTAKe
82
86
// if TUtilsOTA.CurrentProjectIsDelphiAIDeveloperDPROJ then
83
87
// Exit;
84
88
89
+ BindingServices.AddKeyBinding([Shortcut(VK_HOME, [ssAlt])], Self.KeyAltHome, nil );
90
+ BindingServices.AddKeyBinding([Shortcut(VK_TAB, [])], Self.KeyTab, nil );
91
+
85
92
// BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [])], Self.KeyProcBlockReturn, nil);
86
93
BindingServices.AddKeyBinding([Shortcut(VK_RETURN, [ssAlt])], Self.KeyProcBlockReturnAndAlt, nil );
87
94
end ;
@@ -116,6 +123,78 @@ procedure TDelphiAIDevKeyboardBinding.KeyProcBlockReturnAndAlt(const Context: IO
116
123
BindingResult := TKeyBindingResult.krUnhandled; // krNextProc;
117
124
end ;
118
125
126
+ procedure TDelphiAIDevKeyboardBinding.AddBlockText ;
127
+ begin
128
+ TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Clear;
129
+ TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Add(' TUtils.AddLog(EmptyStr);' );
130
+ TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Add(' TUtils.ShowMsg(EmptyStr);' );
131
+ end ;
132
+
133
+ procedure TDelphiAIDevKeyboardBinding.KeyAltHome (const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
134
+ var
135
+ LRow: Integer;
136
+ LColumn: Integer;
137
+ i: Integer;
138
+ LText: string;
139
+ begin
140
+ if KeyCode <> Shortcut(VK_HOME, [ssAlt]) then
141
+ Exit;
142
+
143
+ Self.AddBlockText;
144
+
145
+ LRow := Context.EditBuffer.EditPosition.Row;
146
+ LColumn := Context.EditBuffer.EditPosition.Column;
147
+
148
+ TDelphiAIDevCodeCompletionVars.GetInstance.LineIni := LRow; // + 1;
149
+ TDelphiAIDevCodeCompletionVars.GetInstance.LineEnd := TDelphiAIDevCodeCompletionVars.GetInstance.LineIni + (TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Count); // + 1 //TDelphiAIDevCodeCompletionVars.GetInstance.LineIni + 1;
150
+
151
+ // Context.EditBuffer.EditPosition.InsertText(sLineBreak + sLineBreak);
152
+ LText := ' ' ;
153
+ for i := 0 to Pred(TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Count) do
154
+ LText := LText + sLineBreak;
155
+
156
+ Context.EditBuffer.EditPosition.InsertText(LText.TrimRight + sLineBreak);
157
+ Context.EditBuffer.EditPosition.Move(TDelphiAIDevCodeCompletionVars.GetInstance.LineIni, LColumn);
158
+
159
+ TDelphiAIDevCodeCompletionVars.GetInstance.Row := TDelphiAIDevCodeCompletionVars.GetInstance.LineIni;
160
+ TDelphiAIDevCodeCompletionVars.GetInstance.Column := LColumn;
161
+
162
+ // Context.EditBuffer.EditPosition.MoveBOL;
163
+ // //LTextCurrentLineOrBlock := Context.EditBuffer.EditBlock.Text;
164
+ // LTextCurrentLineOrBlock := GetCurrentLineOrBlock(CnOtaGetTopMostEditView);
165
+ // if LTextCurrentLineOrBlock.Trim.IsEmpty then
166
+ // Exit;
167
+
168
+ BindingResult := TKeyBindingResult.krUnhandled; // krNextProc;
169
+ end ;
170
+
171
+ procedure TDelphiAIDevKeyboardBinding.KeyTab (const Context: IOTAKeyContext; KeyCode: TShortcut; var BindingResult: TKeyBindingResult);
172
+ var
173
+ LText: string;
174
+ i: Integer;
175
+ begin
176
+ TUtils.AddLog(' KeyTab ' + TDelphiAIDevCodeCompletionVars.GetInstance.LineIni.ToString);
177
+
178
+ if KeyCode <> Shortcut(VK_TAB, []) then
179
+ Exit;
180
+
181
+ if TDelphiAIDevCodeCompletionVars.GetInstance.LineIni > 0 then
182
+ begin
183
+ // Context.EditBuffer.EditPosition.InsertText('Minha linha 01' + sLineBreak + 'Linha 2');
184
+ LText := ' ' ;
185
+ for i := 0 to Pred(TDelphiAIDevCodeCompletionVars.GetInstance.Contents.Count) do
186
+ LText := LText + TDelphiAIDevCodeCompletionVars.GetInstance.Contents[i].Trim + sLineBreak;
187
+
188
+ Context.EditBuffer.EditPosition.InsertText(LText.Trim);
189
+ // Context.EditBuffer.EditPosition.Move(TDelphiAIDevCodeCompletionVars.GetInstance.LineEnd, 20);
190
+
191
+ TDelphiAIDevCodeCompletionVars.GetInstance.Clear;
192
+ end ;
193
+
194
+ BindingResult := TKeyBindingResult.krUnhandled; // krNextProc;
195
+ TUtils.AddLog(' KeyTab krUnhandled' );
196
+ end ;
197
+
119
198
initialization
120
199
121
200
finalization
0 commit comments