Update the syntax highlighting to work after text set - thanks a lot to herdsman for the initial patch

This commit is contained in:
Andy Williams 2014-10-23 21:14:46 +01:00
parent f7336e9276
commit 863a4a47a2
1 changed files with 25 additions and 11 deletions

View File

@ -496,9 +496,12 @@ _clang_load_errors(const char *path EINA_UNUSED, Edi_Editor *editor)
}
static void
_edi_clang_setup(const char *path, Edi_Editor *editor)
_edi_clang_setup(Edi_Editor *editor)
{
Evas_Object *textblock;
const char *path;
elm_entry_file_get(editor->entry, &path, NULL);
/* Clang */
/* FIXME: index should probably be global. */
@ -527,6 +530,17 @@ _edi_clang_dispose(Edi_Editor *editor)
*/
#endif
static void
_text_set_done(void *data, Evas_Object *obj EINA_UNUSED, void *source EINA_UNUSED)
{
Edi_Editor *editor = (Edi_Editor *) data;
#if HAVE_LIBCLANG
_edi_clang_setup(editor);
#endif
}
EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item)
{
Evas_Object *txt, *lines, *vbox, *box, *searchbar, *statusbar;
@ -575,12 +589,6 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item)
elm_entry_scrollable_set(txt, EINA_TRUE);
elm_entry_line_wrap_set(txt, EINA_FALSE);
elm_entry_text_style_user_push(txt, EDITOR_FONT);
elm_entry_file_set(txt, item->path, ELM_TEXT_FORMAT_PLAIN_UTF8);
elm_entry_autosave_set(txt, EDI_CONTENT_AUTOSAVE);
evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(txt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(txt);
elm_box_pack_end(box, txt);
editor = calloc(1, sizeof(*editor));
editor->entry = txt;
@ -590,6 +598,16 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item)
evas_object_smart_callback_add(txt, "changed,user", _changed_cb, editor);
evas_object_smart_callback_add(txt, "scroll", _scroll_cb, editor);
evas_object_smart_callback_add(txt, "undo,request", _undo_cb, editor);
evas_object_smart_callback_add(txt, "text,set,done", _text_set_done, editor);
elm_entry_file_set(txt, item->path, ELM_TEXT_FORMAT_PLAIN_UTF8);
elm_entry_autosave_set(txt, EDI_CONTENT_AUTOSAVE);
evas_object_size_hint_weight_set(txt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(txt, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(txt);
elm_box_pack_end(box, txt);
edi_editor_search_add(searchbar, editor);
_edi_editor_statusbar_add(statusbar, editor, item);
@ -608,9 +626,5 @@ EAPI Evas_Object *edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item)
evas_object_data_set(vbox, "editor", editor);
_update_lines(editor);
#if HAVE_LIBCLANG
_edi_clang_setup(item->path, editor);
#endif
return vbox;
}