suggest: Move to a language provider

This means we can add great new stuff in a (nearly) pluggable way
This commit is contained in:
Andy Williams 2017-01-11 18:00:33 +00:00
parent e6feb19a30
commit 2a82fedcb1
12 changed files with 113 additions and 113 deletions

View File

@ -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 \

View File

@ -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);
}

View File

@ -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 = "<align=left><font=\'%s\'><font_size=%d>";
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, "<b><br><br> Parameters<br></b>");
@ -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

View File

@ -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;

View File

@ -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);
/**
* @}

View File

@ -9,7 +9,7 @@
#include <Eina.h>
#include <Elementary.h>
#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);

View File

@ -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/ \

View File

@ -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)

View File

@ -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 */

View File

@ -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);
}

View File

@ -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);
}

View File

@ -5,7 +5,7 @@
#include <Elementary.h>
#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
}