summaryrefslogtreecommitdiff
path: root/src/adapad.adb
diff options
context:
space:
mode:
authorJed Barber <jjbarber@y7mail.com>2016-10-04 18:52:32 +1100
committerJed Barber <jjbarber@y7mail.com>2016-10-04 18:52:32 +1100
commit1f9e7a15d9414b1a96691111069523a70e107f16 (patch)
tree6a1a2642cf8936cd9bd2aa013229e6f9c2b79860 /src/adapad.adb
parent7a84d0f3d0d181196b24795592a260e05b63fa74 (diff)
Basic find functionality working
Diffstat (limited to 'src/adapad.adb')
-rw-r--r--src/adapad.adb15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/adapad.adb b/src/adapad.adb
index 7440ce9..bea6b91 100644
--- a/src/adapad.adb
+++ b/src/adapad.adb
@@ -282,10 +282,19 @@ function Adapad return Integer is
(This : in Do_Find_Callback;
Item : in String;
Match_Case : in Boolean) is
+
+ Current_Position : Natural;
+ Found_At : Natural;
+
begin
- Ada.Text_IO.Put_Line ("Finding " & Item);
- if Match_Case then
- Ada.Text_IO.Put_Line ("Matching case");
+ Find.Hide;
+ Current_Position := Editor.Get_Insert_Position;
+ if Buffer.Search_Forward (Current_Position, Item, Found_At, Match_Case) then
+ Buffer.Set_Selection (Found_At, Found_At + Item'Length);
+ Editor.Set_Insert_Position (Found_At + Item'Length);
+ Editor.Show_Insert_Position;
+ else
+ Alert ("No occurrences of '" & Item & "' found!");
end if;
end Call;