1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Plugins: Added completer_clear

This commit is contained in:
James Booth 2016-04-07 23:25:47 +01:00
parent 7ca6084657
commit 2f432a942d
8 changed files with 45 additions and 0 deletions

View File

@ -166,6 +166,12 @@ api_completer_remove(const char *key, char **items)
autocompleters_remove(key, items);
}
void
api_completer_clear(const char *key)
{
autocompleters_clear(key);
}
void
api_notify(const char *message, const char *category, int timeout_ms)
{

View File

@ -56,6 +56,7 @@ void api_register_timed(void *callback, int interval_seconds,
void api_completer_add(const char *key, char **items);
void api_completer_remove(const char *key, char **items);
void api_completer_clear(const char *key);
void api_log_debug(const char *message);
void api_log_info(const char *message);

View File

@ -80,6 +80,17 @@ autocompleters_remove(const char *key, char **items)
}
}
void
autocompleters_clear(const char *key)
{
if (!g_hash_table_contains(autocompleters, key)) {
return;
}
Autocomplete ac = g_hash_table_lookup(autocompleters, key);
autocomplete_clear(ac);
}
char *
autocompleters_complete(const char * const input)
{

View File

@ -40,6 +40,7 @@
void autocompleters_init(void);
void autocompleters_add(const char *key, char **items);
void autocompleters_remove(const char *key, char **items);
void autocompleters_clear(const char *key);
char* autocompleters_complete(const char * const input);
void autocompleters_reset(void);
void autocompleters_destroy(void);

View File

@ -108,6 +108,12 @@ c_api_completer_remove(const char *key, char **items)
api_completer_remove(key, items);
}
static void
c_api_completer_clear(const char *key)
{
api_completer_clear(key);
}
static void
c_api_notify(const char *message, int timeout_ms, const char *category)
{
@ -277,6 +283,7 @@ c_api_init(void)
prof_register_timed = c_api_register_timed;
prof_completer_add = c_api_completer_add;
prof_completer_remove = c_api_completer_remove;
prof_completer_clear = c_api_completer_clear;
prof_notify = c_api_notify;
prof_send_line = c_api_send_line;
prof_get_current_recipient = c_api_get_current_recipient;

View File

@ -50,6 +50,7 @@ void (*prof_register_timed)(void(*callback)(void), int interval_seconds) = NULL;
void (*prof_completer_add)(const char *key, char **items) = NULL;
void (*prof_completer_remove)(const char *key, char **items) = NULL;
void (*prof_completer_clear)(const char *key) = NULL;
void (*prof_notify)(const char *message, int timeout_ms, const char *category) = NULL;

View File

@ -50,6 +50,7 @@ void (*prof_register_timed)(void(*callback)(void), int interval_seconds);
void (*prof_completer_add)(const char *key, char **items);
void (*prof_completer_remove)(const char *key, char **items);
void (*prof_completer_clear)(const char *key);
void (*prof_notify)(const char *message, int timeout_ms, const char *category);

View File

@ -241,6 +241,22 @@ python_api_completer_remove(PyObject *self, PyObject *args)
return Py_BuildValue("");
}
static PyObject *
python_api_completer_clear(PyObject *self, PyObject *args)
{
const char *key = NULL;
if (!PyArg_ParseTuple(args, "s", &key)) {
return Py_BuildValue("");
}
allow_python_threads();
autocompleters_clear(key);
disable_python_threads();
return Py_BuildValue("");
}
static PyObject*
python_api_notify(PyObject *self, PyObject *args)
{
@ -693,6 +709,7 @@ static PyMethodDef apiMethods[] = {
{ "register_timed", python_api_register_timed, METH_VARARGS, "Register a timed function." },
{ "completer_add", python_api_completer_add, METH_VARARGS, "Add items to an autocompleter." },
{ "completer_remove", python_api_completer_remove, METH_VARARGS, "Remove items from an autocompleter." },
{ "completer_clear", python_api_completer_clear, METH_VARARGS, "Remove all items from an autocompleter." },
{ "send_line", python_api_send_line, METH_VARARGS, "Send a line of input." },
{ "notify", python_api_notify, METH_VARARGS, "Send desktop notification." },
{ "get_current_recipient", python_api_get_current_recipient, METH_VARARGS, "Return the jid of the recipient of the current window." },