From 2a82fedcb142ccdf0f1e0730dc002fc74f439ee1 Mon Sep 17 00:00:00 2001 From: Andy Williams Date: Wed, 11 Jan 2017 18:00:33 +0000 Subject: [PATCH] suggest: Move to a language provider This means we can add great new stuff in a (nearly) pluggable way --- src/bin/Makefile.am | 4 +- src/bin/editor/edi_editor.c | 38 +++++++++---------- src/bin/editor/edi_editor_documentation.c | 16 ++++---- .../edi_language_provider.c} | 24 ++++++------ .../edi_language_provider.h} | 22 +++++------ .../edi_language_provider_c.c} | 28 +++++++------- src/tests/Makefile.am | 4 +- src/tests/edi_suite.c | 4 +- src/tests/edi_suite.h | 4 +- src/tests/edi_test_editor_suggest_provider.c | 26 ------------- src/tests/edi_test_language_provider.c | 26 +++++++++++++ ...der_c.c => edi_test_language_provider_c.c} | 30 +++++++-------- 12 files changed, 113 insertions(+), 113 deletions(-) rename src/bin/{editor/edi_editor_suggest_provider.c => language/edi_language_provider.c} (56%) rename src/bin/{editor/edi_editor_suggest_provider.h => language/edi_language_provider.h} (75%) rename src/bin/{editor/edi_editor_suggest_provider_c.c => language/edi_language_provider_c.c} (93%) delete mode 100644 src/tests/edi_test_editor_suggest_provider.c create mode 100644 src/tests/edi_test_language_provider.c rename src/tests/{edi_test_editor_suggest_provider_c.c => edi_test_language_provider_c.c} (71%) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 85f5586..834a76c 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -22,8 +22,8 @@ AM_CPPFLAGS = \ noinst_HEADERS = \ edi_config.h \ +language/edi_language_provider.h \ editor/edi_editor.h \ -editor/edi_editor_suggest_provider.h \ edi_content_provider.h \ screens/edi_screens.h \ edi_filepanel.h \ @@ -34,8 +34,8 @@ mainview/edi_mainview.h edi_SOURCES = \ edi_config.c \ +language/edi_language_provider.c \ editor/edi_editor_search.c \ -editor/edi_editor_suggest_provider.c \ editor/edi_editor.c \ editor/edi_editor_documentation.c \ edi_content_provider.c \ diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c index 453037f..8b36e23 100644 --- a/src/bin/editor/edi_editor.c +++ b/src/bin/editor/edi_editor.c @@ -12,7 +12,7 @@ #include "mainview/edi_mainview.h" #include "edi_config.h" -#include "editor/edi_editor_suggest_provider.h" +#include "language/edi_language_provider.h" #include "edi_private.h" @@ -105,7 +105,7 @@ _suggest_list_content_get(void *data, Evas_Object *obj, const char *part) { Edi_Editor *editor; Edi_Mainview_Item *item; - Edi_Editor_Suggest_Item *suggest_it = data; + Edi_Language_Suggest_Item *suggest_it = data; char *format, *display; const char *font; int font_size, displen; @@ -139,7 +139,7 @@ _suggest_list_content_get(void *data, Evas_Object *obj, const char *part) static void _suggest_list_cb_selected(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Evas_Object *label = data; suggest_it = elm_object_item_data_get(event_info); @@ -150,7 +150,7 @@ _suggest_list_cb_selected(void *data, Evas_Object *obj EINA_UNUSED, void *event_ static void _suggest_list_update(Edi_Editor *editor, char *word) { - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Eina_List *list, *l; Elm_Genlist_Item_Class *ic; Elm_Object_Item *item; @@ -200,10 +200,10 @@ _suggest_list_set(Edi_Editor *editor) "suggest_list"); if (list) { - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; EINA_LIST_FREE(list, suggest_it) - edi_editor_suggest_item_free(suggest_it); + edi_language_suggest_item_free(suggest_it); list = NULL; evas_object_data_del(editor->suggest_genlist, "suggest_list"); @@ -212,7 +212,7 @@ _suggest_list_set(Edi_Editor *editor) elm_code_widget_cursor_position_get(editor->entry, &row, &col); curword = _edi_editor_current_word_get(editor, row, col); - list = edi_editor_suggest_provider_get(editor)->lookup(editor, row, col - strlen(curword)); + list = edi_language_provider_get(editor)->lookup(editor, row, col - strlen(curword)); evas_object_data_set(editor->suggest_genlist, "suggest_list", list); _suggest_list_update(editor, curword); @@ -254,10 +254,10 @@ _suggest_bg_cb_hide(void *data, Evas *e EINA_UNUSED, "suggest_list"); if (list) { - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; EINA_LIST_FREE(list, suggest_it) - edi_editor_suggest_item_free(suggest_it); + edi_language_suggest_item_free(suggest_it); list = NULL; evas_object_data_del(editor->suggest_genlist, "suggest_list"); @@ -272,7 +272,7 @@ _suggest_list_cb_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info) { Edi_Editor *editor = (Edi_Editor *)data; - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Elm_Object_Item *it; Evas_Object *genlist = obj; Evas_Event_Key_Down *ev = event_info; @@ -308,7 +308,7 @@ _suggest_list_cb_clicked_double(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { Elm_Object_Item *it = event_info; - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Edi_Editor *editor = (Edi_Editor *)data; suggest_it = elm_object_item_data_get(it); @@ -522,20 +522,20 @@ _smart_cb_key_down(void *data EINA_UNUSED, Evas *e EINA_UNUSED, { edi_mainview_goto_popup_show(); } - else if (edi_editor_suggest_provider_has(editor) && !strcmp(ev->key, "space")) + else if (edi_language_provider_has(editor) && !strcmp(ev->key, "space")) { _suggest_list_set(editor); } } else if ((!alt) && (ctrl) && (shift)) { - if (edi_editor_suggest_provider_has(editor) && !strcmp(ev->key, "space")) + if (edi_language_provider_has(editor) && !strcmp(ev->key, "space")) { edi_editor_doc_open(editor); } } - if (edi_editor_suggest_provider_has(editor)) + if (edi_language_provider_has(editor)) { if ((!alt) && (!ctrl)) _suggest_popup_key_down_cb(editor, ev->key, ev->string); @@ -926,7 +926,7 @@ _mouse_up_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, evas_object_hide(editor->suggest_bg); ctrl = evas_key_modifier_is_set(event->modifiers, "Control"); - if (event->button != 3 || !ctrl || !edi_editor_suggest_provider_has(editor)) + if (event->button != 3 || !ctrl || !edi_language_provider_has(editor)) return; elm_code_widget_position_at_coordinates_get(editor->entry, event->canvas.x, event->canvas.y, &row, &col); @@ -993,8 +993,8 @@ _editor_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *o, void *event_info ecore_event_handler_del(ev_handler); - if (edi_editor_suggest_provider_has(editor)) - edi_editor_suggest_provider_get(editor)->del(editor); + if (edi_language_provider_has(editor)) + edi_language_provider_get(editor)->del(editor); } Evas_Object * @@ -1078,9 +1078,9 @@ edi_editor_add(Evas_Object *parent, Edi_Mainview_Item *item) ev_handler = ecore_event_handler_add(EDI_EVENT_CONFIG_CHANGED, _edi_editor_config_changed, widget); evas_object_event_callback_add(vbox, EVAS_CALLBACK_DEL, _editor_del_cb, ev_handler); - if (edi_editor_suggest_provider_has(editor)) + if (edi_language_provider_has(editor)) { - edi_editor_suggest_provider_get(editor)->add(editor); + edi_language_provider_get(editor)->add(editor); _suggest_popup_setup(editor); } diff --git a/src/bin/editor/edi_editor_documentation.c b/src/bin/editor/edi_editor_documentation.c index ce6ff1f..e0850f9 100644 --- a/src/bin/editor/edi_editor_documentation.c +++ b/src/bin/editor/edi_editor_documentation.c @@ -7,12 +7,12 @@ #include "edi_editor.h" -#include "editor/edi_editor_suggest_provider.h" +#include "language/edi_language_provider.h" #include "edi_private.h" static void -_edi_doc_font_set(Edi_Editor_Suggest_Document *doc, const char *font, int font_size) +_edi_doc_font_set(Edi_Language_Document *doc, const char *font, int font_size) { char *format = ""; char *font_head; @@ -57,7 +57,7 @@ _edi_doc_font_set(Edi_Editor_Suggest_Document *doc, const char *font, int font_s } static void -_edi_doc_tag_name_set(Edi_Editor_Suggest_Document *doc) +_edi_doc_tag_name_set(Edi_Language_Document *doc) { if (strlen(eina_strbuf_string_get(doc->param)) > 0) eina_strbuf_prepend(doc->param, "

Parameters
"); @@ -97,15 +97,15 @@ static void _edi_doc_popup_cb_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Edi_Editor_Suggest_Document *doc = data; + Edi_Language_Document *doc = data; - edi_editor_suggest_doc_free(doc); + edi_language_doc_free(doc); } void edi_editor_doc_open(Edi_Editor *editor) { - Edi_Editor_Suggest_Document *doc = NULL; + Edi_Language_Document *doc = NULL; const char *detail, *param, *ret, *see; char *display; int displen; @@ -113,12 +113,12 @@ edi_editor_doc_open(Edi_Editor *editor) const char *font; int font_size; - if (edi_editor_suggest_provider_has(editor)) + if (edi_language_provider_has(editor)) { unsigned int row, col; elm_code_widget_cursor_position_get(editor->entry, &row, &col); - doc = edi_editor_suggest_provider_get(editor)->lookup_doc(editor, row, col); + doc = edi_language_provider_get(editor)->lookup_doc(editor, row, col); } //Popup diff --git a/src/bin/editor/edi_editor_suggest_provider.c b/src/bin/language/edi_language_provider.c similarity index 56% rename from src/bin/editor/edi_editor_suggest_provider.c rename to src/bin/language/edi_language_provider.c index 35462a5..df48631 100644 --- a/src/bin/editor/edi_editor_suggest_provider.c +++ b/src/bin/language/edi_language_provider.c @@ -2,27 +2,27 @@ # include "config.h" #endif -#include "edi_editor_suggest_provider.h" +#include "edi_language_provider.h" #include "edi_config.h" #include "edi_private.h" -#include "edi_editor_suggest_provider_c.c" +#include "edi_language_provider_c.c" -static Edi_Editor_Suggest_Provider _edi_editor_suggest_provider_registry[] = +static Edi_Language_Provider _edi_language_provider_registry[] = { { - "c", _edi_editor_sugggest_c_add, _edi_editor_sugget_c_del, - _edi_editor_suggest_c_lookup, _edi_editor_suggest_c_lookup_doc + "c", _edi_language_c_add, _edi_language_c_del, + _edi_language_c_lookup, _edi_language_c_lookup_doc }, {NULL, NULL, NULL, NULL, NULL} }; -Edi_Editor_Suggest_Provider *edi_editor_suggest_provider_get(Edi_Editor *editor) +Edi_Language_Provider *edi_language_provider_get(Edi_Editor *editor) { - Edi_Editor_Suggest_Provider *provider; + Edi_Language_Provider *provider; const char *mime = editor->mimetype; const char *id = NULL; @@ -36,7 +36,7 @@ Edi_Editor_Suggest_Provider *edi_editor_suggest_provider_get(Edi_Editor *editor) if (!id) return NULL; - provider = _edi_editor_suggest_provider_registry; + provider = _edi_language_provider_registry; while (provider != NULL && provider->id != NULL) { if (!strncmp(id, provider->id, strlen(provider->id))) @@ -49,13 +49,13 @@ Edi_Editor_Suggest_Provider *edi_editor_suggest_provider_get(Edi_Editor *editor) } Eina_Bool -edi_editor_suggest_provider_has(Edi_Editor *editor) +edi_language_provider_has(Edi_Editor *editor) { - return !!edi_editor_suggest_provider_get(editor); + return !!edi_language_provider_get(editor); } void -edi_editor_suggest_item_free(Edi_Editor_Suggest_Item *item) +edi_language_suggest_item_free(Edi_Language_Suggest_Item *item) { free((char *)item->summary); free((char *)item->detail); @@ -64,7 +64,7 @@ edi_editor_suggest_item_free(Edi_Editor_Suggest_Item *item) } void -edi_editor_suggest_doc_free(Edi_Editor_Suggest_Document *doc) +edi_language_doc_free(Edi_Language_Document *doc) { if (!doc) return; diff --git a/src/bin/editor/edi_editor_suggest_provider.h b/src/bin/language/edi_language_provider.h similarity index 75% rename from src/bin/editor/edi_editor_suggest_provider.h rename to src/bin/language/edi_language_provider.h index a0eef08..88b0958 100644 --- a/src/bin/editor/edi_editor_suggest_provider.h +++ b/src/bin/language/edi_language_provider.h @@ -17,35 +17,35 @@ extern "C" { * @typedef Edi_Editor_Suggest_Item * A handle for passig a suggest item to the ui and back */ -typedef struct _Edi_Editor_Suggest_Item +typedef struct _Edi_Language_Suggest_Item { const char *summary; const char *detail; -} Edi_Editor_Suggest_Item; +} Edi_Language_Suggest_Item; -typedef struct _Edi_Editor_Suggest_Document +typedef struct _Edi_Language_Document { Eina_Strbuf *title; Eina_Strbuf *detail; Eina_Strbuf *param; Eina_Strbuf *ret; Eina_Strbuf *see; -} Edi_Editor_Suggest_Document; +} Edi_Language_Document; /** * @struct Edi_Editor_Suggest_Provider * A description of the requirements for a suggestion provider. * This handles the set up and teardown of a provider as well as the lookup and * description lookup functions */ -typedef struct _Edi_Editor_Suggest_Provider +typedef struct _Edi_Language_Provider { const char *id; void (*add)(Edi_Editor *editor); void (*del)(Edi_Editor *editor); Eina_List *(*lookup)(Edi_Editor *editor, unsigned int row, unsigned int col); - Edi_Editor_Suggest_Document *(*lookup_doc)(Edi_Editor *editor, unsigned int row, unsigned int col); -} Edi_Editor_Suggest_Provider; + Edi_Language_Document *(*lookup_doc)(Edi_Editor *editor, unsigned int row, unsigned int col); +} Edi_Language_Provider; /** * @brief Lookup information in suggest provider registry. @@ -61,7 +61,7 @@ typedef struct _Edi_Editor_Suggest_Provider * * @ingroup Lookup */ -Edi_Editor_Suggest_Provider *edi_editor_suggest_provider_get(Edi_Editor *editor); +Edi_Language_Provider *edi_language_provider_get(Edi_Editor *editor); /** * Query whether a suggest provider is available for the spcified editor session. @@ -70,7 +70,7 @@ Edi_Editor_Suggest_Provider *edi_editor_suggest_provider_get(Edi_Editor *editor) * * @ingroup Lookup */ -Eina_Bool edi_editor_suggest_provider_has(Edi_Editor *editor); +Eina_Bool edi_language_provider_has(Edi_Editor *editor); /** * Free a suggest item. @@ -79,7 +79,7 @@ Eina_Bool edi_editor_suggest_provider_has(Edi_Editor *editor); * * @ingroup Lookup */ -void edi_editor_suggest_item_free(Edi_Editor_Suggest_Item *item); +void edi_language_suggest_item_free(Edi_Language_Suggest_Item *item); /** * Free a suggest document. @@ -88,7 +88,7 @@ void edi_editor_suggest_item_free(Edi_Editor_Suggest_Item *item); * * @ingroup Lookup */ -void edi_editor_suggest_doc_free(Edi_Editor_Suggest_Document *doc); +void edi_language_doc_free(Edi_Language_Document *doc); /** * @} diff --git a/src/bin/editor/edi_editor_suggest_provider_c.c b/src/bin/language/edi_language_provider_c.c similarity index 93% rename from src/bin/editor/edi_editor_suggest_provider_c.c rename to src/bin/language/edi_language_provider_c.c index 94d7a33..4c8fff7 100644 --- a/src/bin/editor/edi_editor_suggest_provider_c.c +++ b/src/bin/language/edi_language_provider_c.c @@ -9,7 +9,7 @@ #include #include -#include "edi_editor_suggest_provider.h" +#include "edi_language_provider.h" #include "edi_config.h" @@ -49,7 +49,7 @@ _clang_autosuggest_dispose(Edi_Editor *editor) #endif void -_edi_editor_sugggest_c_add(Edi_Editor *editor) +_edi_language_c_add(Edi_Editor *editor) { #if HAVE_LIBCLANG _clang_autosuggest_setup(editor); @@ -57,7 +57,7 @@ _edi_editor_sugggest_c_add(Edi_Editor *editor) } void -_edi_editor_sugget_c_del(Edi_Editor *editor) +_edi_language_c_del(Edi_Editor *editor) { #if HAVE_LIBCLANG _clang_autosuggest_dispose(editor); @@ -66,7 +66,7 @@ _edi_editor_sugget_c_del(Edi_Editor *editor) #if HAVE_LIBCLANG char * -_edi_editor_suggest_c_detail_get(Edi_Editor *editor, const char *term_str, +_edi_suggest_c_detail_get(Edi_Editor *editor, const char *term_str, const char *ret_str, const char *param_str) { char *format, *display; @@ -91,7 +91,7 @@ _edi_editor_suggest_c_detail_get(Edi_Editor *editor, const char *term_str, #endif Eina_List * -_edi_editor_suggest_c_lookup(Edi_Editor *editor, unsigned int row, unsigned int col) +_edi_language_c_lookup(Edi_Editor *editor, unsigned int row, unsigned int col) { Eina_List *list = NULL; @@ -125,10 +125,10 @@ _edi_editor_suggest_c_lookup(Edi_Editor *editor, unsigned int row, unsigned int const CXCompletionString str = res->Results[i].CompletionString; const char *name = NULL, *ret = NULL; char *param = NULL; - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Eina_Strbuf *buf = NULL; - suggest_it = calloc(1, sizeof(Edi_Editor_Suggest_Item)); + suggest_it = calloc(1, sizeof(Edi_Language_Suggest_Item)); for (unsigned int j = 0; j < clang_getNumCompletionChunks(str); j++) { @@ -168,7 +168,7 @@ _edi_editor_suggest_c_lookup(Edi_Editor *editor, unsigned int row, unsigned int if (name) suggest_it->summary = strdup(name); - suggest_it->detail = _edi_editor_suggest_c_detail_get(editor, name, ret?ret:"", param?param:""); + suggest_it->detail = _edi_suggest_c_detail_get(editor, name, ret?ret:"", param?param:""); if (param) free(param); @@ -182,7 +182,7 @@ _edi_editor_suggest_c_lookup(Edi_Editor *editor, unsigned int row, unsigned int #if HAVE_LIBCLANG static void -_edi_doc_init(Edi_Editor_Suggest_Document *doc) +_edi_doc_init(Edi_Language_Document *doc) { doc->title = eina_strbuf_new(); doc->detail = eina_strbuf_new(); @@ -264,7 +264,7 @@ _edi_doc_title_get(CXCursor cursor, Eina_Strbuf *strbuf) } static void -_edi_doc_dump(Edi_Editor_Suggest_Document *doc, CXComment comment, Eina_Strbuf *strbuf) +_edi_doc_dump(Edi_Language_Document *doc, CXComment comment, Eina_Strbuf *strbuf) { const char *str ,*tag; enum CXCommentKind kind = clang_Comment_getKind(comment); @@ -387,10 +387,10 @@ _edi_doc_cursor_get(Edi_Editor *editor, CXIndex idx, CXTranslationUnit unit, } #endif -static Edi_Editor_Suggest_Document * -_edi_editor_suggest_c_lookup_doc(Edi_Editor *editor, unsigned int row, unsigned int col) +static Edi_Language_Document * +_edi_language_c_lookup_doc(Edi_Editor *editor, unsigned int row, unsigned int col) { - Edi_Editor_Suggest_Document *doc = NULL; + Edi_Language_Document *doc = NULL; #if HAVE_LIBCLANG CXIndex idx = NULL; CXTranslationUnit unit = NULL; @@ -407,7 +407,7 @@ _edi_editor_suggest_c_lookup_doc(Edi_Editor *editor, unsigned int row, unsigned return NULL; } - doc = malloc(sizeof(Edi_Editor_Suggest_Document)); + doc = malloc(sizeof(Edi_Language_Document)); _edi_doc_init(doc); _edi_doc_dump(doc, comment, doc->detail); diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am index 96a49f9..19c2ab1 100644 --- a/src/tests/Makefile.am +++ b/src/tests/Makefile.am @@ -10,8 +10,8 @@ clang_include = '$(CLANG_INCLUDE)' edi_suite_SOURCES = \ edi_test_path.c \ edi_test_content_provider.c \ -edi_test_editor_suggest_provider.c \ -edi_test_editor_suggest_provider_c.c \ +edi_test_language_provider.c \ +edi_test_language_provider_c.c \ edi_suite.c edi_suite_CPPFLAGS = -I$(top_builddir)/src/lib/ -I$(top_builddir)/src/bin/ \ diff --git a/src/tests/edi_suite.c b/src/tests/edi_suite.c index 7bfda5b..0caa1be 100644 --- a/src/tests/edi_suite.c +++ b/src/tests/edi_suite.c @@ -16,8 +16,8 @@ static const struct { { "basic", edi_test_basic }, { "path", edi_test_path }, { "content_provider", edi_test_content_provider }, - { "editor_suggest_provider", edi_test_editor_suggest_provider }, - { "editor_suggest_provider_c", edi_test_editor_suggest_provider_c } + { "language_provider", edi_test_language_provider }, + { "language_provider_c", edi_test_language_provider_c } }; START_TEST(edi_initialization) diff --git a/src/tests/edi_suite.h b/src/tests/edi_suite.h index da89f51..22e70da 100644 --- a/src/tests/edi_suite.h +++ b/src/tests/edi_suite.h @@ -9,7 +9,7 @@ void edi_test_basic(TCase *tc); void edi_test_console(TCase *tc); void edi_test_path(TCase *tc); void edi_test_content_provider(TCase *tc); -void edi_test_editor_suggest_provider(TCase *tc); -void edi_test_editor_suggest_provider_c(TCase *tc); +void edi_test_language_provider(TCase *tc); +void edi_test_language_provider_c(TCase *tc); #endif /* _EDI_SUITE_H */ diff --git a/src/tests/edi_test_editor_suggest_provider.c b/src/tests/edi_test_editor_suggest_provider.c deleted file mode 100644 index fab6e86..0000000 --- a/src/tests/edi_test_editor_suggest_provider.c +++ /dev/null @@ -1,26 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "editor/edi_editor_suggest_provider.c" - -#include "edi_suite.h" - -START_TEST (edi_test_editor_suggest_provider_lookup) -{ - Edi_Editor editor; - Edi_Editor_Suggest_Provider *provider; - - editor.mimetype = "text/x-csrc"; - provider = edi_editor_suggest_provider_get(&editor); - - ck_assert(provider); - ck_assert_str_eq(provider->id, "c"); -} -END_TEST - -void edi_test_editor_suggest_provider(TCase *tc) -{ - tcase_add_test(tc, edi_test_editor_suggest_provider_lookup); -} - diff --git a/src/tests/edi_test_language_provider.c b/src/tests/edi_test_language_provider.c new file mode 100644 index 0000000..d2972ab --- /dev/null +++ b/src/tests/edi_test_language_provider.c @@ -0,0 +1,26 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "language/edi_language_provider.c" + +#include "edi_suite.h" + +START_TEST (edi_test_language_provider_lookup) +{ + Edi_Editor editor; + Edi_Language_Provider *provider; + + editor.mimetype = "text/x-csrc"; + provider = edi_language_provider_get(&editor); + + ck_assert(provider); + ck_assert_str_eq(provider->id, "c"); +} +END_TEST + +void edi_test_language_provider(TCase *tc) +{ + tcase_add_test(tc, edi_test_language_provider_lookup); +} + diff --git a/src/tests/edi_test_editor_suggest_provider_c.c b/src/tests/edi_test_language_provider_c.c similarity index 71% rename from src/tests/edi_test_editor_suggest_provider_c.c rename to src/tests/edi_test_language_provider_c.c index 37b4e01..e6d22bb 100644 --- a/src/tests/edi_test_editor_suggest_provider_c.c +++ b/src/tests/edi_test_language_provider_c.c @@ -5,7 +5,7 @@ #include #include "../bin/edi_private.h" -#include "editor/edi_editor_suggest_provider.h" +#include "language/edi_language_provider.h" #include "edi_suite.h" @@ -31,7 +31,7 @@ _setup(Edi_Editor *editor, Evas_Object *win) static Eina_List * _filtered_list_get(Eina_List *list, const char *word) { - Edi_Editor_Suggest_Item *suggest_it; + Edi_Language_Suggest_Item *suggest_it; Eina_List *l, *ret = NULL; EINA_LIST_FOREACH(list, l, suggest_it) @@ -43,26 +43,26 @@ _filtered_list_get(Eina_List *list, const char *word) return ret; } -START_TEST (edi_test_editor_suggest_provider_c_lookup) +START_TEST (edi_test_language_provider_c_lookup) { Elm_Code *code; Evas_Object *win; Edi_Editor editor; - Edi_Editor_Suggest_Provider *provider; - Edi_Editor_Suggest_Item *item; + Edi_Language_Provider *provider; + Edi_Language_Suggest_Item *item; Eina_List *list; elm_init(1, NULL); win = elm_win_add(NULL, "entry", ELM_WIN_BASIC); code = _setup(&editor, win); - provider = edi_editor_suggest_provider_get(&editor); + provider = edi_language_provider_get(&editor); provider->add(&editor); list = provider->lookup(&editor, 3, 12); ck_assert_int_eq(eina_list_count(_filtered_list_get(list, "_xyzabc_")), 1); EINA_LIST_FREE(list, item) - edi_editor_suggest_item_free(item); + edi_language_suggest_item_free(item); provider->del(&editor); elm_code_free(code); @@ -70,27 +70,27 @@ START_TEST (edi_test_editor_suggest_provider_c_lookup) } END_TEST -START_TEST (edi_test_editor_suggest_provider_c_summary) +START_TEST (edi_test_language_provider_c_summary) { Elm_Code *code; Evas_Object *win; Edi_Editor editor; - Edi_Editor_Suggest_Provider *provider; - Edi_Editor_Suggest_Item *item; + Edi_Language_Provider *provider; + Edi_Language_Suggest_Item *item; Eina_List *list; elm_init(1, NULL); win = elm_win_add(NULL, "entry", ELM_WIN_BASIC); code = _setup(&editor, win); - provider = edi_editor_suggest_provider_get(&editor); + provider = edi_language_provider_get(&editor); provider->add(&editor); list = provider->lookup(&editor, 3, 12); item = eina_list_nth(_filtered_list_get(list, "_xyzabc_"), 0); ck_assert_str_eq(item->summary, "_xyzabc_test"); EINA_LIST_FREE(list, item) - edi_editor_suggest_item_free(item); + edi_language_suggest_item_free(item); provider->del(&editor); elm_code_free(code); @@ -98,11 +98,11 @@ START_TEST (edi_test_editor_suggest_provider_c_summary) } END_TEST -void edi_test_editor_suggest_provider_c(TCase *tc) +void edi_test_language_provider_c(TCase *tc) { #if HAVE_LIBCLANG - tcase_add_test(tc, edi_test_editor_suggest_provider_c_lookup); - tcase_add_test(tc, edi_test_editor_suggest_provider_c_summary); + tcase_add_test(tc, edi_test_language_provider_c_lookup); + tcase_add_test(tc, edi_test_language_provider_c_summary); #endif }