function remove_duplicates_filter () { var acc = {}; return function (x) { if (acc[x]) return false; acc[x] = 1; return true; }; } function magick_options_completer (input, cursor_position, conservative) { var completions; try { completions = get_pref ('conkeror.webjump.magick-options.cache').split (' '); } catch (e) { } if (! completions) { try { var content = yield send_http_request ( load_spec({uri: "http://imagemagick.org/script/command-line-options.php"})); completions = content.responseText.match(/([a-z]+)(?=\">-\1<\/a>)/g).filter (remove_duplicates_filter ()); user_pref ('conkeror.webjump.magick-options.cache', completions.join (' ')); } catch (e) { } } yield co_return ( prefix_completer ($completions = completions) (input, cursor_position, conservative)); } define_webjump ( "magick-options", "http://imagemagick.org/script/command-line-options.php#%s", $completer = magick_options_completer); clear_pref ('conkeror.webjump.magick-options.cache');