[anjuta/python-support] python-support: misc autocomplete fixes, removed warnings
- From: Johannes Schmid <jhs src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta/python-support] python-support: misc autocomplete fixes, removed warnings
- Date: Wed, 4 Aug 2010 17:12:33 +0000 (UTC)
commit 25ba193aa1d3242e6efb30055908354593d40a0c
Author: Johannes Schmid <jhs gnome org>
Date: Wed Aug 4 19:12:13 2010 +0200
python-support: misc autocomplete fixes, removed warnings
plugins/language-support-python/plugin.c | 5 --
plugins/language-support-python/python-assist.c | 66 +++++++++++++++-----
plugins/language-support-python/python-plugin.xml | 5 --
3 files changed, 49 insertions(+), 27 deletions(-)
---
diff --git a/plugins/language-support-python/plugin.c b/plugins/language-support-python/plugin.c
index 30b29c5..3824a4a 100644
--- a/plugins/language-support-python/plugin.c
+++ b/plugins/language-support-python/plugin.c
@@ -654,7 +654,6 @@ get_current_statement (IAnjutaEditor *editor, gint line_num, gint *found_line_nu
} while (isalpha(point_ch) || isdigit(point_ch)); // FIXME: Is this UTF-8 compatible?
statement[counter-1] = '\0';
- DEBUG_PRINT ("Statement is: *%s*\n", statement);
g_object_unref (iter);
return g_strdup_printf("%s", statement);
}
@@ -866,10 +865,6 @@ on_editor_char_inserted_cpp (IAnjutaEditor *editor,
/* If autoindent is enabled*/
if (anjuta_preferences_get_bool (plugin->prefs, PREF_INDENT_AUTOMATIC))
{
-
- DEBUG_PRINT ("Char added at position %d: '%c'",
- ianjuta_iterable_get_position (insert_pos, NULL), ch);
-
if (iter_is_newline (iter, ch))
{
skip_iter_to_newline_head (iter, ch);
diff --git a/plugins/language-support-python/python-assist.c b/plugins/language-support-python/python-assist.c
index 7f35c9f..b315076 100644
--- a/plugins/language-support-python/python-assist.c
+++ b/plugins/language-support-python/python-assist.c
@@ -475,6 +475,10 @@ python_assist_create_word_completion_cache (PythonAssist *assist, IAnjutaIterabl
assist->priv->cache_position = offset;
assist->priv->search_cache = g_strdup (assist->priv->pre_word);
+ ianjuta_editor_assist_proposals (IANJUTA_EDITOR_ASSIST (assist->priv->iassist),
+ IANJUTA_PROVIDER (assist),
+ NULL, FALSE, NULL);
+
return TRUE;
}
@@ -734,12 +738,40 @@ python_assist_none (IAnjutaProvider* self,
NULL, TRUE, NULL);
}
+static gint
+python_assist_dot (IAnjutaEditor* editor,
+ IAnjutaIterable* cursor)
+{
+ IAnjutaIterable* iter = ianjuta_iterable_clone (cursor, NULL);
+ gboolean retval = FALSE;
+ /* Go backward first as we are behind the current character */
+ if (ianjuta_iterable_previous (iter, NULL))
+ {
+ gchar c = ianjuta_editor_cell_get_char (IANJUTA_EDITOR_CELL (iter),
+ 0, NULL);
+ retval = (c == '.');
+ }
+ g_object_unref (iter);
+ return retval;
+}
+
+
static void
python_assist_populate (IAnjutaProvider* self, IAnjutaIterable* cursor, GError** e)
{
PythonAssist* assist = PYTHON_ASSIST (self);
IAnjutaIterable* start_iter = NULL;
gchar* pre_word;
+ gboolean dot;
+
+ /* Check for calltip */
+ if (assist->priv->itip &&
+ anjuta_preferences_get_bool_with_default (assist->priv->preferences,
+ PREF_CALLTIP_ENABLE,
+ TRUE))
+ {
+ python_assist_calltip (assist);
+ }
/* Check if we actually want autocompletion at all */
if (!anjuta_preferences_get_bool_with_default (anjuta_preferences_default (),
@@ -760,17 +792,10 @@ python_assist_populate (IAnjutaProvider* self, IAnjutaIterable* cursor, GError**
return;
}
- /* Check for calltip */
- if (assist->priv->itip &&
- anjuta_preferences_get_bool_with_default (assist->priv->preferences,
- PREF_CALLTIP_ENABLE,
- TRUE))
- {
- python_assist_calltip (assist);
- }
-
pre_word = python_assist_get_pre_word (IANJUTA_EDITOR (assist->priv->iassist), cursor, &start_iter);
+ DEBUG_PRINT ("Preword: %s", pre_word);
+
/* Check if completion was in progress */
if (assist->priv->completion_cache)
{
@@ -786,18 +811,24 @@ python_assist_populate (IAnjutaProvider* self, IAnjutaIterable* cursor, GError**
g_free (pre_word);
return;
}
- else
- python_assist_destroy_completion_cache (assist);
- g_free (pre_word);
}
-
- if (pre_word && strlen (pre_word) > 3 &&
- python_assist_create_word_completion_cache (assist, cursor))
+ else
+ {
+ python_assist_destroy_completion_cache (assist);
+ }
+ dot = python_assist_dot (IANJUTA_EDITOR (assist->priv->iassist),
+ cursor);
+ if (((pre_word && strlen (pre_word) >= 3) || dot) &&
+ python_assist_create_word_completion_cache (assist, cursor))
{
if (assist->priv->start_iter)
g_object_unref (assist->priv->start_iter);
- assist->priv->start_iter = start_iter;
- python_assist_update_pre_word (assist, pre_word);
+ if (start_iter)
+ assist->priv->start_iter = start_iter;
+ else
+ assist->priv->start_iter = ianjuta_iterable_clone (cursor, NULL);
+ python_assist_update_pre_word (assist, pre_word ? pre_word : "");
+ g_free (pre_word);
return;
}
/* Nothing to propose */
@@ -807,6 +838,7 @@ python_assist_populate (IAnjutaProvider* self, IAnjutaIterable* cursor, GError**
assist->priv->start_iter = NULL;
}
python_assist_none (self, assist);
+ g_free (pre_word);
}
diff --git a/plugins/language-support-python/python-plugin.xml b/plugins/language-support-python/python-plugin.xml
index 54e3d99..248c9d4 100644
--- a/plugins/language-support-python/python-plugin.xml
+++ b/plugins/language-support-python/python-plugin.xml
@@ -9,9 +9,4 @@
</placeholder>
</menu>
</menubar>
- <popup name="PopupDocumentManager">
- <separator name="separator1"/>
- <menuitem name="Swap" action="ActionFileSwap" />
- <separator name="separator2"/>
- </popup>
</ui>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]