Commit 1ad2e8ca authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajustes e testes no SynFacilCompletion

parent 224b6f5f
...@@ -109,6 +109,8 @@ type ...@@ -109,6 +109,8 @@ type
procedure FormDestroy(Sender: TObject); procedure FormDestroy(Sender: TObject);
private private
{ Private declarations } { Private declarations }
fAlias,
fKeywords : TStrings;
fExecuting: Boolean; fExecuting: Boolean;
fMetaModel: acMetaModel; fMetaModel: acMetaModel;
fMetaModelPersistenceMap: acMetaModelPersistenceMapSQL; fMetaModelPersistenceMap: acMetaModelPersistenceMapSQL;
...@@ -143,8 +145,11 @@ type ...@@ -143,8 +145,11 @@ type
function FindParcialNodeClass(piClassTicketPai : acClassTicket; piFiltrar: boolean):acClassTicket; function FindParcialNodeClass(piClassTicketPai : acClassTicket; piFiltrar: boolean):acClassTicket;
//procedure ExecutarSybCompletion(piSynCompletion : TSynCompletion); //procedure ExecutarSybCompletion(piSynCompletion : TSynCompletion);
procedure LoadListCompletion(piLinha:string;piAceitaAtributo : boolean;piLista : TStrings); procedure LoadListCompletion(piLinha:string;piAceitaAtributo : boolean;piLista : TStrings);
procedure LoadAliasCompletion(piLinha:string);
// procedure PreparaSynCompletion; // procedure PreparaSynCompletion;
function RetirarPalavraChaveOLQ(piSynEdit :TSynEdit):string; function RetirarPalavraChaveOLQ(piSynEdit :TSynEdit):string;
function IsKeyword(piItem : string): boolean;
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -451,8 +456,28 @@ begin ...@@ -451,8 +456,28 @@ begin
end; end;
procedure TExplorerV2.SynEditOQLKeyUp(Sender: TObject; var Key: Word; procedure TExplorerV2.SynEditOQLKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); Shift: TShiftState);
var lmostrar : boolean;
begin begin
if not ( (Shift = [ssCtrl]) and (Key = 86) ) then lmostrar := true;
// Ctrl + Espao
if ( (Shift = [ssCtrl]) and (Key = 86) )
then
begin
lmostrar := false;
end;
//Espao
if key = 32 then
begin
lmostrar := false;
end;
//backspace
if key = 8 then
begin
lmostrar := false;
end;
if lmostrar then
begin begin
fhlt1.KeyUp(Sender, Key, Shift); fhlt1.KeyUp(Sender, Key, Shift);
end; end;
...@@ -801,6 +826,29 @@ begin ...@@ -801,6 +826,29 @@ begin
end; end;
end; end;
procedure TExplorerV2.LoadAliasCompletion(piLinhas: string);
var ls_texto,
ls_espaco : string;
li_Pos : integer;
begin
ls_espaco := ' ';
li_Pos := Pos(__FROM,uppercase(piLinhas));
if li_Pos > 0 then
begin
ls_texto :=trim(Copy(result,li_Pos + Length(__FROM),Length(piLinhas)));
li_Pos := Pos(ls_espaco,trim(ls_texto));
while li_Pos > 0 do
begin
result :=trim(Copy(ls_texto,li_Pos + 1,Length(ls_texto)));
li_Pos := Pos(ls_espaco,result);
end;
end;
end;
{ {
procedure TExplorerV2.PreparaSynCompletion; procedure TExplorerV2.PreparaSynCompletion;
var lAceitaAtributo : boolean; var lAceitaAtributo : boolean;
...@@ -888,6 +936,17 @@ begin ...@@ -888,6 +936,17 @@ begin
end; end;
function TExplorerV2.IsKeyword(piItem: string): boolean;
var li_index : integer;
begin
result := false;
li_index := fKeywords.IndexOf(piItem);
if li_index >= 0 then
begin
result := true;
end;
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams); procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
...@@ -907,6 +966,7 @@ var lMetaModelGenOpt: TMetaModelGenerationOptions; ...@@ -907,6 +966,7 @@ var lMetaModelGenOpt: TMetaModelGenerationOptions;
lSelectSec, lSelectSec,
lFromSec, lFromSec,
lWhereSec: TFaSynBlock; lWhereSec: TFaSynBlock;
li : integer;
begin begin
lMetaModelGenOpt.CheckDBAttributeNameLength := true; lMetaModelGenOpt.CheckDBAttributeNameLength := true;
lMetaModelGenOpt.CheckDBTableNameLength := true; lMetaModelGenOpt.CheckDBTableNameLength := true;
...@@ -916,6 +976,16 @@ begin ...@@ -916,6 +976,16 @@ begin
FMetaModelPersistenceMap := fUtil.MetaModelPersistenceMap; FMetaModelPersistenceMap := fUtil.MetaModelPersistenceMap;
MetaModel := fUtil.MetaModel; MetaModel := fUtil.MetaModel;
fKeywords := TStringList.Create;
fKeywords.Add(__SELECT);
fKeywords.Add(__FROM);
fKeywords.Add(__WHERE);
fKeywords.Add('ORDER');
fKeywords.Add('BY');
fKeywords.Add('JOIN');
fAlias := TStringList.Create;
fhlt1 := TSynFacilComplet.Create(self); //my highlighter fhlt1 := TSynFacilComplet.Create(self); //my highlighter
//Here the syntax is defined //Here the syntax is defined
// ... // ...
...@@ -926,12 +996,11 @@ begin ...@@ -926,12 +996,11 @@ begin
fhlt1.SelectOnEnter:= true; fhlt1.SelectOnEnter:= true;
fhlt1.DefTokIdentif('[$A-Za-z_]', '[A-Za-z0-9_]*'); fhlt1.DefTokIdentif('[$A-Za-z_]', '[A-Za-z0-9_]*');
fhlt1.KeywordAttribute.Foreground:=clBlue; fhlt1.KeywordAttribute.Foreground:=clBlue;
fhlt1.AddKeyword('SELECT');
fhlt1.AddKeyword('FROM'); for li := 0 to fKeywords.Count - 1 do
fhlt1.AddKeyword('WHERE'); begin
fhlt1.AddKeyword('ORDER'); fhlt1.AddKeyword(fKeywords.Strings[li]);
fhlt1.AddKeyword('BY'); end;
fhlt1.AddKeyword('JOIN');
lSelectSec := fhlt1.AddSection(__SELECT); lSelectSec := fhlt1.AddSection(__SELECT);
lFromSec := fhlt1.AddSection(__FROM); lFromSec := fhlt1.AddSection(__FROM);
...@@ -988,17 +1057,25 @@ end; ...@@ -988,17 +1057,25 @@ end;
procedure TExplorerV2.FormDestroy(Sender: TObject); procedure TExplorerV2.FormDestroy(Sender: TObject);
begin begin
fUtil.Free; fUtil.Free;
fhlt1.UnSelectEditor;
fhlt1.Free;
fKeywords.Free;
fAlias.Free;
end; end;
procedure TExplorerV2.opEveLoadItems(opEve: TFaOpenEvent; procedure TExplorerV2.opEveLoadItems(opEve: TFaOpenEvent;
curEnv: TFaCursorEnviron; out Cancel: boolean); curEnv: TFaCursorEnviron; out Cancel: boolean);
var lLista : TStrings; var lLista : TStrings;
ls_Texto,
lLinha : string; lLinha : string;
lAceitaAtributo : boolean; lAceitaAtributo : boolean;
li : integer; li : integer;
begin begin
opEve.ClearAvails; opEve.ClearAvails;
lAceitaAtributo := false; lAceitaAtributo := false;
ls_Texto := SynEditOQL.GetWordAtRowCol(SynEditOQL.CaretXY);
if not IsKeyword(ls_Texto) then
begin
if opEve = fopEvenWhereAposPonto then if opEve = fopEvenWhereAposPonto then
begin begin
lAceitaAtributo := true; lAceitaAtributo := true;
...@@ -1022,6 +1099,7 @@ begin ...@@ -1022,6 +1099,7 @@ begin
finally finally
lLista.Free; lLista.Free;
end; end;
end;
Cancel := true; Cancel := true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment