aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Herbelin2020-04-12 15:55:52 +0200
committerHugo Herbelin2020-04-12 15:59:29 +0200
commitfc2bd56377205f9cc3ff52dd335fd338670fe13b (patch)
tree99b5eec28e4ca9d0921d655e643b6817e5c21718
parentbf0c1214c9d0e46c4188fd7471c47aa330755e69 (diff)
CoqIDE completion: Relying on INSERT mark of the buffer.
The iterator of the completion context does not seem trustable.
-rw-r--r--ide/wg_Completion.ml4
-rw-r--r--ide/wg_Completion.mli2
-rw-r--r--ide/wg_ScriptView.ml2
3 files changed, 4 insertions, 4 deletions
diff --git a/ide/wg_Completion.ml b/ide/wg_Completion.ml
index 367a897394..cc24e71386 100644
--- a/ide/wg_Completion.ml
+++ b/ide/wg_Completion.ml
@@ -69,7 +69,7 @@ let is_substring s1 s2 =
if !break then len2 - len1
else -1
-class completion_provider coqtop =
+class completion_provider buffer coqtop =
let self_provider = ref None in
let active = ref true in
let provider = object (self)
@@ -97,7 +97,7 @@ class completion_provider coqtop =
ctx#add_proposals (Option.get !self_provider) props true
method populate ctx =
- let iter = ctx#iter in
+ let iter = buffer#get_iter_at_mark `INSERT in
let () = insert_offset <- iter#offset in
let () = Minilib.log (Printf.sprintf "Completion at offset: %i" insert_offset) in
let buffer = new GText.buffer iter#buffer in
diff --git a/ide/wg_Completion.mli b/ide/wg_Completion.mli
index 93c4cbb602..8bb34fbbca 100644
--- a/ide/wg_Completion.mli
+++ b/ide/wg_Completion.mli
@@ -10,7 +10,7 @@
module Proposals : sig type t end
-class completion_provider : Coq.coqtop ->
+class completion_provider : GText.buffer -> Coq.coqtop ->
object
inherit GSourceView3.source_completion_provider
method active : bool
diff --git a/ide/wg_ScriptView.ml b/ide/wg_ScriptView.ml
index f2d9f33d7d..62d58a5f23 100644
--- a/ide/wg_ScriptView.ml
+++ b/ide/wg_ScriptView.ml
@@ -287,7 +287,7 @@ end
class script_view (tv : source_view) (ct : Coq.coqtop) =
let view = new GSourceView3.source_view (Gobject.unsafe_cast tv) in
-let provider = new Wg_Completion.completion_provider ct in
+let provider = new Wg_Completion.completion_provider view#buffer ct in
object (self)
inherit GSourceView3.source_view (Gobject.unsafe_cast tv)