Commit 98cc6c01 authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajuste e teste

parent 30df7598
...@@ -192,6 +192,7 @@ type ...@@ -192,6 +192,7 @@ type
function IsKeyword(piItem : string): boolean; function IsKeyword(piItem : string): boolean;
function GetTextBetweenWord(piSynEdit :TSynEdit;piWordPos: TPoint;piWord : string) : string; function GetTextBetweenWord(piSynEdit :TSynEdit;piWordPos: TPoint;piWord : string) : string;
function IsExepressaoValida(piOpEve: TFaOpenEvent;piTexto : string; piTemPalavraAntes : Boolean = false):boolean; function IsExepressaoValida(piOpEve: TFaOpenEvent;piTexto : string; piTemPalavraAntes : Boolean = false):boolean;
function GetPrevWordPosValida(piSynEdit: TSynEdit) :TPoint;
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -1304,7 +1305,8 @@ function TExplorerV2.GetTextBetweenLines(piSynEdit: TSynEdit; out ...@@ -1304,7 +1305,8 @@ function TExplorerV2.GetTextBetweenLines(piSynEdit: TSynEdit; out
var p1, p2, PointAtual: TPoint; var p1, p2, PointAtual: TPoint;
lLen : integer; lLen : integer;
begin begin
p1 := piSynEdit.PrevWordPos; //p1 := piSynEdit.PrevWordPos;
p1 := Self.GetPrevWordPosValida(piSynEdit);
piCareWordXY := p1; piCareWordXY := p1;
p2 := piSynEdit.CaretXY; p2 := piSynEdit.CaretXY;
PointAtual := P2; PointAtual := P2;
...@@ -1431,7 +1433,10 @@ begin ...@@ -1431,7 +1433,10 @@ begin
end end
else if (lTextAfterWord <> '') then else if (lTextAfterWord <> '') then
begin begin
result := lTextAfterWord; if not IsExepressaoValida(opEve,trim(lTextAfterWord),lTemPalavra) then
begin
result := lTextAfterWord;
end;
end; end;
end end
else else
...@@ -1526,16 +1531,30 @@ begin ...@@ -1526,16 +1531,30 @@ begin
li_len := Length(piTexto); li_len := Length(piTexto);
if (piOpEve = fopEvenSelectCompleto) then if (piOpEve = fopEvenSelectCompleto) then
begin begin
ls_expressao := '=,()*'; if piTemPalavraAntes then
if (trim(piTexto) = __ASTERICO) then begin
begin ls_expressao := '=,(*';
li_Pos := li_Len + 1; end
result := false; else
end; begin
ls_expressao := '=,()*';
if (trim(piTexto) = __ASTERICO) then
begin
li_Pos := li_Len + 1;
result := false;
end;
end;
end end
else if (piOpEve = fopEvenFromCompleto) then else if (piOpEve = fopEvenFromCompleto) then
begin begin
ls_expressao := '=,()'; if piTemPalavraAntes then
begin
ls_expressao := ',(';
end
else
begin
ls_expressao := '=,()';
end
end end
else if (piOpEve = fopEvenWhereCompleto) then else if (piOpEve = fopEvenWhereCompleto) then
begin begin
...@@ -1560,10 +1579,36 @@ begin ...@@ -1560,10 +1579,36 @@ begin
break; break;
end; end;
end; end;
li_Pos := li_Pos + 1; li_Pos := li_Pos + 1;
end; end;
end; end;
function TExplorerV2.GetPrevWordPosValida(piSynEdit: TSynEdit): TPoint;
var lWordAnt,
lWord : string;
begin
result := piSynEdit.PrevWordPos;
lWordAnt := trim(piSynEdit.GetWordAtRowCol(result));
if lWordAnt = '' then
begin
while (trim(lWordAnt) = '') and (result.Y > 0) do
begin
result.Y := result.Y - 1;
lWordAnt := trim(piSynEdit.GetWordAtRowCol(result));
end;
result.X := result.X + Length(lWordAnt) + 1;
lWord := trim(piSynEdit.GetWordAtRowCol(result));
while lWord <> lWordAnt do
begin
lWordAnt := lWord;
result.X := result.X + Length(lWord);
lWord := trim(piSynEdit.GetWordAtRowCol(result));
end;
end;
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams); procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
...@@ -2358,4 +2403,4 @@ begin ...@@ -2358,4 +2403,4 @@ begin
{$ENDIF} {$ENDIF}
end; end;
end.11 end.
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