[anjuta] anjuta_language_provider: add proposals() function
- From: Carl-Anton Ingmarsson <carlantoni src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta] anjuta_language_provider: add proposals() function
- Date: Mon, 22 Apr 2013 09:07:03 +0000 (UTC)
commit 4cd343b53c7192e4d2260059c7aa4f6293f9a7dc
Author: Carl-Anton Ingmarsson <ca ingmarsson gmail com>
Date: Mon Apr 22 00:00:09 2013 +0200
anjuta_language_provider: add proposals() function
Users of AnjutaLanguageProvider should call anjuta_language_provider_proposals()
instead of ianjuta_editor_assist_proposals(). AnjutaLanguageProvider will
automatically filter away single proposals that are exactly the same as the pre_word.
libanjuta/anjuta-language-provider.c | 35 ++++++++++++++++++++++++++++++++++-
libanjuta/anjuta-language-provider.h | 7 +++++++
2 files changed, 41 insertions(+), 1 deletion(-)
---
diff --git a/libanjuta/anjuta-language-provider.c b/libanjuta/anjuta-language-provider.c
index c4ab547..eb673eb 100644
--- a/libanjuta/anjuta-language-provider.c
+++ b/libanjuta/anjuta-language-provider.c
@@ -532,7 +532,7 @@ anjuta_language_provider_activate (AnjutaLanguageProvider* lang_prov,
* @cursor: (type GObject): the text iter where the provider should be populated
*
* Show completion for the context at position @iter. The provider should
- * call ianjuta_editor_assist_proposals here to add proposals to the list.
+ * call anjuta_language_provider_proposals here to add proposals to the list.
*/
void
anjuta_language_provider_populate (AnjutaLanguageProvider* lang_prov,
@@ -587,6 +587,39 @@ anjuta_language_provider_populate (AnjutaLanguageProvider* lang_prov,
}
/**
+ * anjuta_language_provider_proposals:
+ * @lang_prov: Self
+ * @iprov: (type GObject): IAnjutaProvider object
+ * @proposals: (element-type IAnjutaEditorAssistProposal): a list of IAnjutaProposals
+ * @pre_word: the word before the cursor
+ * @finished: whether is was the last call in an async operation
+ *
+ * Add the list of proposals for the current population. You can add
+ * proposals async as long as the last call sets finished to TRUE. That
+ * is usually called by the IAnjutaLanguageProvider after it was triggered by
+ * ianjuta_language_provider_populate_completions()
+ */
+void
+anjuta_language_provider_proposals (AnjutaLanguageProvider* lang_prov,
+ IAnjutaProvider* iprov,
+ GList* proposals,
+ const gchar* pre_word,
+ gboolean finished)
+{
+ /* Hide if the only suggestion is exactly the typed word */
+ if (pre_word && proposals && g_list_length (proposals) == 1)
+ {
+ IAnjutaEditorAssistProposal* proposal = proposals->data;
+ AnjutaLanguageProposalData* data = proposal->data;
+ if (g_str_equal (pre_word, data->name))
+ proposals = NULL;
+ }
+
+ ianjuta_editor_assist_proposals (lang_prov->priv->iassist, iprov, proposals,
+ pre_word, finished, NULL);
+}
+
+/**
* anjuta_language_provider_get_start_iter:
* @lang_prov: Self
*
diff --git a/libanjuta/anjuta-language-provider.h b/libanjuta/anjuta-language-provider.h
index fbaa5d2..c4fe328 100644
--- a/libanjuta/anjuta-language-provider.h
+++ b/libanjuta/anjuta-language-provider.h
@@ -107,6 +107,13 @@ void
anjuta_language_provider_populate (AnjutaLanguageProvider* lang_prov,
IAnjutaProvider* iprov,
IAnjutaIterable* cursor);
+void
+anjuta_language_provider_proposals (AnjutaLanguageProvider* lang_prov,
+ IAnjutaProvider* iprov,
+ GList* proposals,
+ const gchar* pre_word,
+ gboolean finished);
+
IAnjutaIterable*
anjuta_language_provider_get_start_iter (AnjutaLanguageProvider* lang_prov);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]