feat: add spellcheck highlighting support
Introduce optional spellcheck highlighting in the input window using the Enchant-2 library. ``` /spellcheck on /spellcheck lang en_US ``` New theme color `input.misspelled`. Fixes: https://github.com/profanity-im/profanity/issues/183 Signed-off-by: Michael Vetter <jubalh@iodoru.org>
This commit is contained in:
@@ -43,6 +43,7 @@
|
||||
static char* _sub_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _notify_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _theme_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _spellcheck_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _autoaway_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _autoconnect_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
static char* _account_autocomplete(ProfWin* window, const char* const input, gboolean previous);
|
||||
@@ -138,6 +139,7 @@ static Autocomplete autoconnect_ac;
|
||||
static Autocomplete wintitle_ac;
|
||||
static Autocomplete theme_ac;
|
||||
static Autocomplete theme_load_ac;
|
||||
static Autocomplete spellcheck_ac;
|
||||
static Autocomplete account_ac;
|
||||
static Autocomplete account_set_ac;
|
||||
static Autocomplete account_clear_ac;
|
||||
@@ -298,6 +300,7 @@ static Autocomplete* all_acs[] = {
|
||||
&autoconnect_ac,
|
||||
&wintitle_ac,
|
||||
&theme_ac,
|
||||
&spellcheck_ac,
|
||||
&account_ac,
|
||||
&account_set_ac,
|
||||
&account_clear_ac,
|
||||
@@ -563,6 +566,10 @@ cmd_ac_init(void)
|
||||
autocomplete_add(theme_ac, "colours");
|
||||
autocomplete_add(theme_ac, "properties");
|
||||
|
||||
autocomplete_add(spellcheck_ac, "on");
|
||||
autocomplete_add(spellcheck_ac, "off");
|
||||
autocomplete_add(spellcheck_ac, "lang");
|
||||
|
||||
autocomplete_add(disco_ac, "info");
|
||||
autocomplete_add(disco_ac, "items");
|
||||
|
||||
@@ -1748,6 +1755,16 @@ cmd_ac_complete_filepath(const char* const input, char* const startstr, gboolean
|
||||
return autocomplete_param_with_ac(input, startstr, filepath_ac, TRUE, previous);
|
||||
}
|
||||
|
||||
static char*
|
||||
_spellcheck_autocomplete(ProfWin* window, const char* const input, gboolean previous)
|
||||
{
|
||||
char* result = NULL;
|
||||
|
||||
result = autocomplete_param_with_ac(input, "/spellcheck", spellcheck_ac, TRUE, previous);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static char*
|
||||
_cmd_ac_complete_params(ProfWin* window, const char* const input, gboolean previous)
|
||||
{
|
||||
@@ -1767,6 +1784,11 @@ _cmd_ac_complete_params(ProfWin* window, const char* const input, gboolean previ
|
||||
}
|
||||
}
|
||||
|
||||
result = _spellcheck_autocomplete(window, input, previous);
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// autocomplete nickname in chat rooms
|
||||
if (window->type == WIN_MUC) {
|
||||
ProfMucWin* mucwin = (ProfMucWin*)window;
|
||||
|
||||
Reference in New Issue
Block a user