From e1c02422832ef30d1f944f8ea1754e516c576eeb Mon Sep 17 00:00:00 2001 From: Jake Bolewski Date: Wed, 1 Apr 2015 00:44:02 -0400 Subject: [PATCH] add emoji REPL completion --- base/REPL.jl | 2 +- base/REPLCompletions.jl | 29 +- base/emoji_symbols.jl | 857 ++++++++++++++++++++++++++++++++++++++++ test/replcompletions.jl | 20 +- 4 files changed, 895 insertions(+), 13 deletions(-) create mode 100644 base/emoji_symbols.jl diff --git a/base/REPL.jl b/base/REPL.jl index a8c5e77bea0492..d2d6378187a661 100644 --- a/base/REPL.jl +++ b/base/REPL.jl @@ -286,7 +286,7 @@ end function complete_line(c::LatexCompletions, s) partial = bytestring_beforecursor(LineEdit.buffer(s)) full = LineEdit.input_string(s) - ret, range, should_complete = latex_completions(full, endof(partial))[2] + ret, range, should_complete = bslash_completions(full, endof(partial))[2] return ret, partial[range], should_complete end diff --git a/base/REPLCompletions.jl b/base/REPLCompletions.jl index 7d693dc6be45c6..78f2383d50aa69 100644 --- a/base/REPLCompletions.jl +++ b/base/REPLCompletions.jl @@ -1,6 +1,6 @@ module REPLCompletions -export completions, shell_completions, latex_completions +export completions, shell_completions, bslash_completions using Base.Meta @@ -236,6 +236,7 @@ function complete_methods(ex_org::Expr) end include("latex_symbols.jl") +include("emoji_symbols.jl") const non_identifier_chars = [" \t\n\r\"\\'`\$><=:;|&{}()[],+-*/?%^~"...] const whitespace_chars = [" \t\n\r"...] @@ -253,17 +254,26 @@ function afterusing(string::ByteString, startpos::Int) return ismatch(r"^\b(using|import)\s*(\w+\s*,\s*)*\w*$", str[fr:end]) end -function latex_completions(string, pos) +function bslash_completions(string, pos) slashpos = rsearch(string, '\\', pos) - if rsearch(string, whitespace_chars, pos) < slashpos && !(1 < slashpos && (string[prevind(string, slashpos)]=='\\')) - # latex symbol substitution + if (rsearch(string, whitespace_chars, pos) < slashpos && + !(1 < slashpos && (string[prevind(string, slashpos)]=='\\'))) + # latex / emoji symbol substitution s = string[slashpos:pos] latex = get(latex_symbols, s, "") if !isempty(latex) # complete an exact match return (true, ([latex], slashpos:pos, true)) - else - # return possible matches; these cannot be mixed with regular - # Julian completions as only latex symbols contain the leading \ + end + emoji = get(emoji_symbols, s, "") + if !isempty(emoji) + return (true, ([emoji], slashpos:pos, true)) + end + # return possible matches; these cannot be mixed with regular + # Julian completions as only latex / emoji symbols contain the leading \ + if startswith(s, "\\:") # emoji + emoji_names = filter(k -> startswith(k, s), keys(emoji_symbols)) + return (true, (sort!(collect(emoji_names)), slashpos:pos, true)) + else # latex latex_names = filter(k -> startswith(k, s), keys(latex_symbols)) return (true, (sort!(collect(latex_names)), slashpos:pos, true)) end @@ -290,9 +300,10 @@ function completions(string, pos) (success || inc_tag==:cmd) && return sort(paths), r, success end - ok, ret = latex_completions(string, pos) + ok, ret = bslash_completions(string, pos) ok && return ret - # Make sure that only latex_completions is working on strings + + # Make sure that only bslash_completions is working on strings inc_tag==:string && return UTF8String[], 0:-1, false if inc_tag == :other && should_method_complete(partial) diff --git a/base/emoji_symbols.jl b/base/emoji_symbols.jl new file mode 100644 index 00000000000000..035f5a591c070e --- /dev/null +++ b/base/emoji_symbols.jl @@ -0,0 +1,857 @@ +#= +import JSON +emojis = JSON.parsefile(download("https://raw.githubusercontent.com/iamcal/emoji-data/0f0cf4ea8845eb52d26df2a48c3c31c3b8cad14e/emoji_pretty.json")) + +result = Dict() +for emj in emojis + name = "\\:" * emj["short_name"] * ":" + unicode = emj["unified"] + if '-' in unicode + continue + end + result[name] = "$(Char(parse(UInt32, unicode, 16)))" +end + +skeys = sort(collect(keys(result))) + +open("emoji_symbols.jl", "w") do fh + println(fh, "const emoji_symbols = Dict(") + for key in skeys + println(fh, " \"", escape_string(key), "\" => \"", + escape_string(result[key]), "\",") + end + println(fh, ")") +end +=# + +const emoji_symbols = Dict( + "\\:+1:" => "๐Ÿ‘", + "\\:-1:" => "๐Ÿ‘Ž", + "\\:100:" => "๐Ÿ’ฏ", + "\\:1234:" => "๐Ÿ”ข", + "\\:8ball:" => "๐ŸŽฑ", + "\\:a:" => "๐Ÿ…ฐ", + "\\:ab:" => "๐Ÿ†Ž", + "\\:abc:" => "๐Ÿ”ค", + "\\:abcd:" => "๐Ÿ”ก", + "\\:accept:" => "๐Ÿ‰‘", + "\\:aerial_tramway:" => "๐Ÿšก", + "\\:airplane:" => "โœˆ", + "\\:alarm_clock:" => "โฐ", + "\\:alien:" => "๐Ÿ‘ฝ", + "\\:ambulance:" => "๐Ÿš‘", + "\\:anchor:" => "โš“", + "\\:angel:" => "๐Ÿ‘ผ", + "\\:anger:" => "๐Ÿ’ข", + "\\:angry:" => "๐Ÿ˜ ", + "\\:anguished:" => "๐Ÿ˜ง", + "\\:ant:" => "๐Ÿœ", + "\\:apple:" => "๐ŸŽ", + "\\:aquarius:" => "โ™’", + "\\:aries:" => "โ™ˆ", + "\\:arrow_backward:" => "โ—€", + "\\:arrow_double_down:" => "โฌ", + "\\:arrow_double_up:" => "โซ", + "\\:arrow_down:" => "โฌ‡", + "\\:arrow_down_small:" => "๐Ÿ”ฝ", + "\\:arrow_forward:" => "โ–ถ", + "\\:arrow_heading_down:" => "โคต", + "\\:arrow_heading_up:" => "โคด", + "\\:arrow_left:" => "โฌ…", + "\\:arrow_lower_left:" => "โ†™", + "\\:arrow_lower_right:" => "โ†˜", + "\\:arrow_right:" => "โžก", + "\\:arrow_right_hook:" => "โ†ช", + "\\:arrow_up:" => "โฌ†", + "\\:arrow_up_down:" => "โ†•", + "\\:arrow_up_small:" => "๐Ÿ”ผ", + "\\:arrow_upper_left:" => "โ†–", + "\\:arrow_upper_right:" => "โ†—", + "\\:arrows_clockwise:" => "๐Ÿ”ƒ", + "\\:arrows_counterclockwise:" => "๐Ÿ”„", + "\\:art:" => "๐ŸŽจ", + "\\:articulated_lorry:" => "๐Ÿš›", + "\\:astonished:" => "๐Ÿ˜ฒ", + "\\:athletic_shoe:" => "๐Ÿ‘Ÿ", + "\\:atm:" => "๐Ÿง", + "\\:b:" => "๐Ÿ…ฑ", + "\\:baby:" => "๐Ÿ‘ถ", + "\\:baby_bottle:" => "๐Ÿผ", + "\\:baby_chick:" => "๐Ÿค", + "\\:baby_symbol:" => "๐Ÿšผ", + "\\:back:" => "๐Ÿ”™", + "\\:baggage_claim:" => "๐Ÿ›„", + "\\:balloon:" => "๐ŸŽˆ", + "\\:ballot_box_with_check:" => "โ˜‘", + "\\:bamboo:" => "๐ŸŽ", + "\\:banana:" => "๐ŸŒ", + "\\:bangbang:" => "โ€ผ", + "\\:bank:" => "๐Ÿฆ", + "\\:bar_chart:" => "๐Ÿ“Š", + "\\:barber:" => "๐Ÿ’ˆ", + "\\:baseball:" => "โšพ", + "\\:basketball:" => "๐Ÿ€", + "\\:bath:" => "๐Ÿ›€", + "\\:bathtub:" => "๐Ÿ›", + "\\:battery:" => "๐Ÿ”‹", + "\\:bear:" => "๐Ÿป", + "\\:bee:" => "๐Ÿ", + "\\:beer:" => "๐Ÿบ", + "\\:beers:" => "๐Ÿป", + "\\:beetle:" => "๐Ÿž", + "\\:beginner:" => "๐Ÿ”ฐ", + "\\:bell:" => "๐Ÿ””", + "\\:bento:" => "๐Ÿฑ", + "\\:bicyclist:" => "๐Ÿšด", + "\\:bike:" => "๐Ÿšฒ", + "\\:bikini:" => "๐Ÿ‘™", + "\\:bird:" => "๐Ÿฆ", + "\\:birthday:" => "๐ŸŽ‚", + "\\:black_circle:" => "โšซ", + "\\:black_joker:" => "๐Ÿƒ", + "\\:black_large_square:" => "โฌ›", + "\\:black_medium_small_square:" => "โ—พ", + "\\:black_medium_square:" => "โ—ผ", + "\\:black_nib:" => "โœ’", + "\\:black_small_square:" => "โ–ช", + "\\:black_square_button:" => "๐Ÿ”ฒ", + "\\:blossom:" => "๐ŸŒผ", + "\\:blowfish:" => "๐Ÿก", + "\\:blue_book:" => "๐Ÿ“˜", + "\\:blue_car:" => "๐Ÿš™", + "\\:blue_heart:" => "๐Ÿ’™", + "\\:blush:" => "๐Ÿ˜Š", + "\\:boar:" => "๐Ÿ—", + "\\:boat:" => "โ›ต", + "\\:bomb:" => "๐Ÿ’ฃ", + "\\:book:" => "๐Ÿ“–", + "\\:bookmark:" => "๐Ÿ”–", + "\\:bookmark_tabs:" => "๐Ÿ“‘", + "\\:books:" => "๐Ÿ“š", + "\\:boom:" => "๐Ÿ’ฅ", + "\\:boot:" => "๐Ÿ‘ข", + "\\:bouquet:" => "๐Ÿ’", + "\\:bow:" => "๐Ÿ™‡", + "\\:bowling:" => "๐ŸŽณ", + "\\:boy:" => "๐Ÿ‘ฆ", + "\\:bread:" => "๐Ÿž", + "\\:bride_with_veil:" => "๐Ÿ‘ฐ", + "\\:bridge_at_night:" => "๐ŸŒ‰", + "\\:briefcase:" => "๐Ÿ’ผ", + "\\:broken_heart:" => "๐Ÿ’”", + "\\:bug:" => "๐Ÿ›", + "\\:bulb:" => "๐Ÿ’ก", + "\\:bullettrain_front:" => "๐Ÿš…", + "\\:bullettrain_side:" => "๐Ÿš„", + "\\:bus:" => "๐ŸšŒ", + "\\:busstop:" => "๐Ÿš", + "\\:bust_in_silhouette:" => "๐Ÿ‘ค", + "\\:busts_in_silhouette:" => "๐Ÿ‘ฅ", + "\\:cactus:" => "๐ŸŒต", + "\\:cake:" => "๐Ÿฐ", + "\\:calendar:" => "๐Ÿ“†", + "\\:calling:" => "๐Ÿ“ฒ", + "\\:camel:" => "๐Ÿซ", + "\\:camera:" => "๐Ÿ“ท", + "\\:cancer:" => "โ™‹", + "\\:candy:" => "๐Ÿฌ", + "\\:capital_abcd:" => "๐Ÿ” ", + "\\:capricorn:" => "โ™‘", + "\\:car:" => "๐Ÿš—", + "\\:card_index:" => "๐Ÿ“‡", + "\\:carousel_horse:" => "๐ŸŽ ", + "\\:cat2:" => "๐Ÿˆ", + "\\:cat:" => "๐Ÿฑ", + "\\:cd:" => "๐Ÿ’ฟ", + "\\:chart:" => "๐Ÿ’น", + "\\:chart_with_downwards_trend:" => "๐Ÿ“‰", + "\\:chart_with_upwards_trend:" => "๐Ÿ“ˆ", + "\\:checkered_flag:" => "๐Ÿ", + "\\:cherries:" => "๐Ÿ’", + "\\:cherry_blossom:" => "๐ŸŒธ", + "\\:chestnut:" => "๐ŸŒฐ", + "\\:chicken:" => "๐Ÿ”", + "\\:children_crossing:" => "๐Ÿšธ", + "\\:chocolate_bar:" => "๐Ÿซ", + "\\:christmas_tree:" => "๐ŸŽ„", + "\\:church:" => "โ›ช", + "\\:cinema:" => "๐ŸŽฆ", + "\\:circus_tent:" => "๐ŸŽช", + "\\:city_sunrise:" => "๐ŸŒ‡", + "\\:city_sunset:" => "๐ŸŒ†", + "\\:cl:" => "๐Ÿ†‘", + "\\:clap:" => "๐Ÿ‘", + "\\:clapper:" => "๐ŸŽฌ", + "\\:clipboard:" => "๐Ÿ“‹", + "\\:clock1030:" => "๐Ÿ•ฅ", + "\\:clock10:" => "๐Ÿ•™", + "\\:clock1130:" => "๐Ÿ•ฆ", + "\\:clock11:" => "๐Ÿ•š", + "\\:clock1230:" => "๐Ÿ•ง", + "\\:clock12:" => "๐Ÿ•›", + "\\:clock130:" => "๐Ÿ•œ", + "\\:clock1:" => "๐Ÿ•", + "\\:clock230:" => "๐Ÿ•", + "\\:clock2:" => "๐Ÿ•‘", + "\\:clock330:" => "๐Ÿ•ž", + "\\:clock3:" => "๐Ÿ•’", + "\\:clock430:" => "๐Ÿ•Ÿ", + "\\:clock4:" => "๐Ÿ•“", + "\\:clock530:" => "๐Ÿ• ", + "\\:clock5:" => "๐Ÿ•”", + "\\:clock630:" => "๐Ÿ•ก", + "\\:clock6:" => "๐Ÿ••", + "\\:clock730:" => "๐Ÿ•ข", + "\\:clock7:" => "๐Ÿ•–", + "\\:clock830:" => "๐Ÿ•ฃ", + "\\:clock8:" => "๐Ÿ•—", + "\\:clock930:" => "๐Ÿ•ค", + "\\:clock9:" => "๐Ÿ•˜", + "\\:closed_book:" => "๐Ÿ“•", + "\\:closed_lock_with_key:" => "๐Ÿ”", + "\\:closed_umbrella:" => "๐ŸŒ‚", + "\\:cloud:" => "โ˜", + "\\:clubs:" => "โ™ฃ", + "\\:cocktail:" => "๐Ÿธ", + "\\:coffee:" => "โ˜•", + "\\:cold_sweat:" => "๐Ÿ˜ฐ", + "\\:computer:" => "๐Ÿ’ป", + "\\:confetti_ball:" => "๐ŸŽŠ", + "\\:confounded:" => "๐Ÿ˜–", + "\\:confused:" => "๐Ÿ˜•", + "\\:congratulations:" => "ใŠ—", + "\\:construction:" => "๐Ÿšง", + "\\:construction_worker:" => "๐Ÿ‘ท", + "\\:convenience_store:" => "๐Ÿช", + "\\:cookie:" => "๐Ÿช", + "\\:cool:" => "๐Ÿ†’", + "\\:cop:" => "๐Ÿ‘ฎ", + "\\:copyright:" => "ยฉ", + "\\:corn:" => "๐ŸŒฝ", + "\\:couple:" => "๐Ÿ‘ซ", + "\\:couple_with_heart:" => "๐Ÿ’‘", + "\\:couplekiss:" => "๐Ÿ’", + "\\:cow2:" => "๐Ÿ„", + "\\:cow:" => "๐Ÿฎ", + "\\:credit_card:" => "๐Ÿ’ณ", + "\\:crescent_moon:" => "๐ŸŒ™", + "\\:crocodile:" => "๐ŸŠ", + "\\:crossed_flags:" => "๐ŸŽŒ", + "\\:crown:" => "๐Ÿ‘‘", + "\\:cry:" => "๐Ÿ˜ข", + "\\:crying_cat_face:" => "๐Ÿ˜ฟ", + "\\:crystal_ball:" => "๐Ÿ”ฎ", + "\\:cupid:" => "๐Ÿ’˜", + "\\:curly_loop:" => "โžฐ", + "\\:currency_exchange:" => "๐Ÿ’ฑ", + "\\:curry:" => "๐Ÿ›", + "\\:custard:" => "๐Ÿฎ", + "\\:customs:" => "๐Ÿ›ƒ", + "\\:cyclone:" => "๐ŸŒ€", + "\\:dancer:" => "๐Ÿ’ƒ", + "\\:dancers:" => "๐Ÿ‘ฏ", + "\\:dango:" => "๐Ÿก", + "\\:dart:" => "๐ŸŽฏ", + "\\:dash:" => "๐Ÿ’จ", + "\\:date:" => "๐Ÿ“…", + "\\:deciduous_tree:" => "๐ŸŒณ", + "\\:department_store:" => "๐Ÿฌ", + "\\:diamond_shape_with_a_dot_inside:" => "๐Ÿ’ ", + "\\:diamonds:" => "โ™ฆ", + "\\:disappointed:" => "๐Ÿ˜ž", + "\\:disappointed_relieved:" => "๐Ÿ˜ฅ", + "\\:dizzy:" => "๐Ÿ’ซ", + "\\:dizzy_face:" => "๐Ÿ˜ต", + "\\:do_not_litter:" => "๐Ÿšฏ", + "\\:dog2:" => "๐Ÿ•", + "\\:dog:" => "๐Ÿถ", + "\\:dollar:" => "๐Ÿ’ต", + "\\:dolls:" => "๐ŸŽŽ", + "\\:dolphin:" => "๐Ÿฌ", + "\\:door:" => "๐Ÿšช", + "\\:doughnut:" => "๐Ÿฉ", + "\\:dragon:" => "๐Ÿ‰", + "\\:dragon_face:" => "๐Ÿฒ", + "\\:dress:" => "๐Ÿ‘—", + "\\:dromedary_camel:" => "๐Ÿช", + "\\:droplet:" => "๐Ÿ’ง", + "\\:dvd:" => "๐Ÿ“€", + "\\:e-mail:" => "๐Ÿ“ง", + "\\:ear:" => "๐Ÿ‘‚", + "\\:ear_of_rice:" => "๐ŸŒพ", + "\\:earth_africa:" => "๐ŸŒ", + "\\:earth_americas:" => "๐ŸŒŽ", + "\\:earth_asia:" => "๐ŸŒ", + "\\:egg:" => "๐Ÿณ", + "\\:eggplant:" => "๐Ÿ†", + "\\:eight_pointed_black_star:" => "โœด", + "\\:eight_spoked_asterisk:" => "โœณ", + "\\:electric_plug:" => "๐Ÿ”Œ", + "\\:elephant:" => "๐Ÿ˜", + "\\:email:" => "โœ‰", + "\\:end:" => "๐Ÿ”š", + "\\:envelope_with_arrow:" => "๐Ÿ“ฉ", + "\\:euro:" => "๐Ÿ’ถ", + "\\:european_castle:" => "๐Ÿฐ", + "\\:european_post_office:" => "๐Ÿค", + "\\:evergreen_tree:" => "๐ŸŒฒ", + "\\:exclamation:" => "โ—", + "\\:expressionless:" => "๐Ÿ˜‘", + "\\:eyeglasses:" => "๐Ÿ‘“", + "\\:eyes:" => "๐Ÿ‘€", + "\\:facepunch:" => "๐Ÿ‘Š", + "\\:factory:" => "๐Ÿญ", + "\\:fallen_leaf:" => "๐Ÿ‚", + "\\:family:" => "๐Ÿ‘ช", + "\\:fast_forward:" => "โฉ", + "\\:fax:" => "๐Ÿ“ ", + "\\:fearful:" => "๐Ÿ˜จ", + "\\:feet:" => "๐Ÿพ", + "\\:ferris_wheel:" => "๐ŸŽก", + "\\:file_folder:" => "๐Ÿ“", + "\\:fire:" => "๐Ÿ”ฅ", + "\\:fire_engine:" => "๐Ÿš’", + "\\:fireworks:" => "๐ŸŽ†", + "\\:first_quarter_moon:" => "๐ŸŒ“", + "\\:first_quarter_moon_with_face:" => "๐ŸŒ›", + "\\:fish:" => "๐ŸŸ", + "\\:fish_cake:" => "๐Ÿฅ", + "\\:fishing_pole_and_fish:" => "๐ŸŽฃ", + "\\:fist:" => "โœŠ", + "\\:flags:" => "๐ŸŽ", + "\\:flashlight:" => "๐Ÿ”ฆ", + "\\:floppy_disk:" => "๐Ÿ’พ", + "\\:flower_playing_cards:" => "๐ŸŽด", + "\\:flushed:" => "๐Ÿ˜ณ", + "\\:foggy:" => "๐ŸŒ", + "\\:football:" => "๐Ÿˆ", + "\\:footprints:" => "๐Ÿ‘ฃ", + "\\:fork_and_knife:" => "๐Ÿด", + "\\:fountain:" => "โ›ฒ", + "\\:four_leaf_clover:" => "๐Ÿ€", + "\\:free:" => "๐Ÿ†“", + "\\:fried_shrimp:" => "๐Ÿค", + "\\:fries:" => "๐ŸŸ", + "\\:frog:" => "๐Ÿธ", + "\\:frowning:" => "๐Ÿ˜ฆ", + "\\:fuelpump:" => "โ›ฝ", + "\\:full_moon:" => "๐ŸŒ•", + "\\:full_moon_with_face:" => "๐ŸŒ", + "\\:game_die:" => "๐ŸŽฒ", + "\\:gem:" => "๐Ÿ’Ž", + "\\:gemini:" => "โ™Š", + "\\:ghost:" => "๐Ÿ‘ป", + "\\:gift:" => "๐ŸŽ", + "\\:gift_heart:" => "๐Ÿ’", + "\\:girl:" => "๐Ÿ‘ง", + "\\:globe_with_meridians:" => "๐ŸŒ", + "\\:goat:" => "๐Ÿ", + "\\:golf:" => "โ›ณ", + "\\:grapes:" => "๐Ÿ‡", + "\\:green_apple:" => "๐Ÿ", + "\\:green_book:" => "๐Ÿ“—", + "\\:green_heart:" => "๐Ÿ’š", + "\\:grey_exclamation:" => "โ•", + "\\:grey_question:" => "โ”", + "\\:grimacing:" => "๐Ÿ˜ฌ", + "\\:grin:" => "๐Ÿ˜", + "\\:grinning:" => "๐Ÿ˜€", + "\\:guardsman:" => "๐Ÿ’‚", + "\\:guitar:" => "๐ŸŽธ", + "\\:gun:" => "๐Ÿ”ซ", + "\\:haircut:" => "๐Ÿ’‡", + "\\:hamburger:" => "๐Ÿ”", + "\\:hammer:" => "๐Ÿ”จ", + "\\:hamster:" => "๐Ÿน", + "\\:hand:" => "โœ‹", + "\\:handbag:" => "๐Ÿ‘œ", + "\\:hankey:" => "๐Ÿ’ฉ", + "\\:hatched_chick:" => "๐Ÿฅ", + "\\:hatching_chick:" => "๐Ÿฃ", + "\\:headphones:" => "๐ŸŽง", + "\\:hear_no_evil:" => "๐Ÿ™‰", + "\\:heart:" => "โค", + "\\:heart_decoration:" => "๐Ÿ’Ÿ", + "\\:heart_eyes:" => "๐Ÿ˜", + "\\:heart_eyes_cat:" => "๐Ÿ˜ป", + "\\:heartbeat:" => "๐Ÿ’“", + "\\:heartpulse:" => "๐Ÿ’—", + "\\:hearts:" => "โ™ฅ", + "\\:heavy_check_mark:" => "โœ”", + "\\:heavy_division_sign:" => "โž—", + "\\:heavy_dollar_sign:" => "๐Ÿ’ฒ", + "\\:heavy_minus_sign:" => "โž–", + "\\:heavy_multiplication_x:" => "โœ–", + "\\:heavy_plus_sign:" => "โž•", + "\\:helicopter:" => "๐Ÿš", + "\\:herb:" => "๐ŸŒฟ", + "\\:hibiscus:" => "๐ŸŒบ", + "\\:high_brightness:" => "๐Ÿ”†", + "\\:high_heel:" => "๐Ÿ‘ ", + "\\:hocho:" => "๐Ÿ”ช", + "\\:honey_pot:" => "๐Ÿฏ", + "\\:horse:" => "๐Ÿด", + "\\:horse_racing:" => "๐Ÿ‡", + "\\:hospital:" => "๐Ÿฅ", + "\\:hotel:" => "๐Ÿจ", + "\\:hotsprings:" => "โ™จ", + "\\:hourglass:" => "โŒ›", + "\\:hourglass_flowing_sand:" => "โณ", + "\\:house:" => "๐Ÿ ", + "\\:house_with_garden:" => "๐Ÿก", + "\\:hushed:" => "๐Ÿ˜ฏ", + "\\:ice_cream:" => "๐Ÿจ", + "\\:icecream:" => "๐Ÿฆ", + "\\:id:" => "๐Ÿ†”", + "\\:ideograph_advantage:" => "๐Ÿ‰", + "\\:imp:" => "๐Ÿ‘ฟ", + "\\:inbox_tray:" => "๐Ÿ“ฅ", + "\\:incoming_envelope:" => "๐Ÿ“จ", + "\\:information_desk_person:" => "๐Ÿ’", + "\\:information_source:" => "โ„น", + "\\:innocent:" => "๐Ÿ˜‡", + "\\:interrobang:" => "โ‰", + "\\:iphone:" => "๐Ÿ“ฑ", + "\\:izakaya_lantern:" => "๐Ÿฎ", + "\\:jack_o_lantern:" => "๐ŸŽƒ", + "\\:japan:" => "๐Ÿ—พ", + "\\:japanese_castle:" => "๐Ÿฏ", + "\\:japanese_goblin:" => "๐Ÿ‘บ", + "\\:japanese_ogre:" => "๐Ÿ‘น", + "\\:jeans:" => "๐Ÿ‘–", + "\\:joy:" => "๐Ÿ˜‚", + "\\:joy_cat:" => "๐Ÿ˜น", + "\\:key:" => "๐Ÿ”‘", + "\\:keycap_ten:" => "๐Ÿ”Ÿ", + "\\:kimono:" => "๐Ÿ‘˜", + "\\:kiss:" => "๐Ÿ’‹", + "\\:kissing:" => "๐Ÿ˜—", + "\\:kissing_cat:" => "๐Ÿ˜ฝ", + "\\:kissing_closed_eyes:" => "๐Ÿ˜š", + "\\:kissing_heart:" => "๐Ÿ˜˜", + "\\:kissing_smiling_eyes:" => "๐Ÿ˜™", + "\\:koala:" => "๐Ÿจ", + "\\:koko:" => "๐Ÿˆ", + "\\:large_blue_circle:" => "๐Ÿ”ต", + "\\:large_blue_diamond:" => "๐Ÿ”ท", + "\\:large_orange_diamond:" => "๐Ÿ”ถ", + "\\:last_quarter_moon:" => "๐ŸŒ—", + "\\:last_quarter_moon_with_face:" => "๐ŸŒœ", + "\\:laughing:" => "๐Ÿ˜†", + "\\:leaves:" => "๐Ÿƒ", + "\\:ledger:" => "๐Ÿ“’", + "\\:left_luggage:" => "๐Ÿ›…", + "\\:left_right_arrow:" => "โ†”", + "\\:leftwards_arrow_with_hook:" => "โ†ฉ", + "\\:lemon:" => "๐Ÿ‹", + "\\:leo:" => "โ™Œ", + "\\:leopard:" => "๐Ÿ†", + "\\:libra:" => "โ™Ž", + "\\:light_rail:" => "๐Ÿšˆ", + "\\:link:" => "๐Ÿ”—", + "\\:lips:" => "๐Ÿ‘„", + "\\:lipstick:" => "๐Ÿ’„", + "\\:lock:" => "๐Ÿ”’", + "\\:lock_with_ink_pen:" => "๐Ÿ”", + "\\:lollipop:" => "๐Ÿญ", + "\\:loop:" => "โžฟ", + "\\:loud_sound:" => "๐Ÿ”Š", + "\\:loudspeaker:" => "๐Ÿ“ข", + "\\:love_hotel:" => "๐Ÿฉ", + "\\:love_letter:" => "๐Ÿ’Œ", + "\\:low_brightness:" => "๐Ÿ”…", + "\\:m:" => "โ“‚", + "\\:mag:" => "๐Ÿ”", + "\\:mag_right:" => "๐Ÿ”Ž", + "\\:mahjong:" => "๐Ÿ€„", + "\\:mailbox:" => "๐Ÿ“ซ", + "\\:mailbox_closed:" => "๐Ÿ“ช", + "\\:mailbox_with_mail:" => "๐Ÿ“ฌ", + "\\:mailbox_with_no_mail:" => "๐Ÿ“ญ", + "\\:man:" => "๐Ÿ‘จ", + "\\:man_with_gua_pi_mao:" => "๐Ÿ‘ฒ", + "\\:man_with_turban:" => "๐Ÿ‘ณ", + "\\:mans_shoe:" => "๐Ÿ‘ž", + "\\:maple_leaf:" => "๐Ÿ", + "\\:mask:" => "๐Ÿ˜ท", + "\\:massage:" => "๐Ÿ’†", + "\\:meat_on_bone:" => "๐Ÿ–", + "\\:mega:" => "๐Ÿ“ฃ", + "\\:melon:" => "๐Ÿˆ", + "\\:memo:" => "๐Ÿ“", + "\\:mens:" => "๐Ÿšน", + "\\:metro:" => "๐Ÿš‡", + "\\:microphone:" => "๐ŸŽค", + "\\:microscope:" => "๐Ÿ”ฌ", + "\\:milky_way:" => "๐ŸŒŒ", + "\\:minibus:" => "๐Ÿš", + "\\:minidisc:" => "๐Ÿ’ฝ", + "\\:mobile_phone_off:" => "๐Ÿ“ด", + "\\:money_with_wings:" => "๐Ÿ’ธ", + "\\:moneybag:" => "๐Ÿ’ฐ", + "\\:monkey:" => "๐Ÿ’", + "\\:monkey_face:" => "๐Ÿต", + "\\:monorail:" => "๐Ÿš", + "\\:moon:" => "๐ŸŒ”", + "\\:mortar_board:" => "๐ŸŽ“", + "\\:mount_fuji:" => "๐Ÿ—ป", + "\\:mountain_bicyclist:" => "๐Ÿšต", + "\\:mountain_cableway:" => "๐Ÿš ", + "\\:mountain_railway:" => "๐Ÿšž", + "\\:mouse2:" => "๐Ÿ", + "\\:mouse:" => "๐Ÿญ", + "\\:movie_camera:" => "๐ŸŽฅ", + "\\:moyai:" => "๐Ÿ—ฟ", + "\\:muscle:" => "๐Ÿ’ช", + "\\:mushroom:" => "๐Ÿ„", + "\\:musical_keyboard:" => "๐ŸŽน", + "\\:musical_note:" => "๐ŸŽต", + "\\:musical_score:" => "๐ŸŽผ", + "\\:mute:" => "๐Ÿ”‡", + "\\:nail_care:" => "๐Ÿ’…", + "\\:name_badge:" => "๐Ÿ“›", + "\\:necktie:" => "๐Ÿ‘”", + "\\:negative_squared_cross_mark:" => "โŽ", + "\\:neutral_face:" => "๐Ÿ˜", + "\\:new:" => "๐Ÿ†•", + "\\:new_moon:" => "๐ŸŒ‘", + "\\:new_moon_with_face:" => "๐ŸŒš", + "\\:newspaper:" => "๐Ÿ“ฐ", + "\\:ng:" => "๐Ÿ†–", + "\\:night_with_stars:" => "๐ŸŒƒ", + "\\:no_bell:" => "๐Ÿ”•", + "\\:no_bicycles:" => "๐Ÿšณ", + "\\:no_entry:" => "โ›”", + "\\:no_entry_sign:" => "๐Ÿšซ", + "\\:no_good:" => "๐Ÿ™…", + "\\:no_mobile_phones:" => "๐Ÿ“ต", + "\\:no_mouth:" => "๐Ÿ˜ถ", + "\\:no_pedestrians:" => "๐Ÿšท", + "\\:no_smoking:" => "๐Ÿšญ", + "\\:non-potable_water:" => "๐Ÿšฑ", + "\\:nose:" => "๐Ÿ‘ƒ", + "\\:notebook:" => "๐Ÿ““", + "\\:notebook_with_decorative_cover:" => "๐Ÿ“”", + "\\:notes:" => "๐ŸŽถ", + "\\:nut_and_bolt:" => "๐Ÿ”ฉ", + "\\:o2:" => "๐Ÿ…พ", + "\\:o:" => "โญ•", + "\\:ocean:" => "๐ŸŒŠ", + "\\:octopus:" => "๐Ÿ™", + "\\:oden:" => "๐Ÿข", + "\\:office:" => "๐Ÿข", + "\\:ok:" => "๐Ÿ†—", + "\\:ok_hand:" => "๐Ÿ‘Œ", + "\\:ok_woman:" => "๐Ÿ™†", + "\\:older_man:" => "๐Ÿ‘ด", + "\\:older_woman:" => "๐Ÿ‘ต", + "\\:on:" => "๐Ÿ”›", + "\\:oncoming_automobile:" => "๐Ÿš˜", + "\\:oncoming_bus:" => "๐Ÿš", + "\\:oncoming_police_car:" => "๐Ÿš”", + "\\:oncoming_taxi:" => "๐Ÿš–", + "\\:open_file_folder:" => "๐Ÿ“‚", + "\\:open_hands:" => "๐Ÿ‘", + "\\:open_mouth:" => "๐Ÿ˜ฎ", + "\\:ophiuchus:" => "โ›Ž", + "\\:orange_book:" => "๐Ÿ“™", + "\\:outbox_tray:" => "๐Ÿ“ค", + "\\:ox:" => "๐Ÿ‚", + "\\:package:" => "๐Ÿ“ฆ", + "\\:page_facing_up:" => "๐Ÿ“„", + "\\:page_with_curl:" => "๐Ÿ“ƒ", + "\\:pager:" => "๐Ÿ“Ÿ", + "\\:palm_tree:" => "๐ŸŒด", + "\\:panda_face:" => "๐Ÿผ", + "\\:paperclip:" => "๐Ÿ“Ž", + "\\:parking:" => "๐Ÿ…ฟ", + "\\:part_alternation_mark:" => "ใ€ฝ", + "\\:partly_sunny:" => "โ›…", + "\\:passport_control:" => "๐Ÿ›‚", + "\\:peach:" => "๐Ÿ‘", + "\\:pear:" => "๐Ÿ", + "\\:pencil2:" => "โœ", + "\\:penguin:" => "๐Ÿง", + "\\:pensive:" => "๐Ÿ˜”", + "\\:performing_arts:" => "๐ŸŽญ", + "\\:persevere:" => "๐Ÿ˜ฃ", + "\\:person_frowning:" => "๐Ÿ™", + "\\:person_with_blond_hair:" => "๐Ÿ‘ฑ", + "\\:person_with_pouting_face:" => "๐Ÿ™Ž", + "\\:phone:" => "โ˜Ž", + "\\:pig2:" => "๐Ÿ–", + "\\:pig:" => "๐Ÿท", + "\\:pig_nose:" => "๐Ÿฝ", + "\\:pill:" => "๐Ÿ’Š", + "\\:pineapple:" => "๐Ÿ", + "\\:pisces:" => "โ™“", + "\\:pizza:" => "๐Ÿ•", + "\\:point_down:" => "๐Ÿ‘‡", + "\\:point_left:" => "๐Ÿ‘ˆ", + "\\:point_right:" => "๐Ÿ‘‰", + "\\:point_up:" => "โ˜", + "\\:point_up_2:" => "๐Ÿ‘†", + "\\:police_car:" => "๐Ÿš“", + "\\:poodle:" => "๐Ÿฉ", + "\\:post_office:" => "๐Ÿฃ", + "\\:postal_horn:" => "๐Ÿ“ฏ", + "\\:postbox:" => "๐Ÿ“ฎ", + "\\:potable_water:" => "๐Ÿšฐ", + "\\:pouch:" => "๐Ÿ‘", + "\\:poultry_leg:" => "๐Ÿ—", + "\\:pound:" => "๐Ÿ’ท", + "\\:pouting_cat:" => "๐Ÿ˜พ", + "\\:pray:" => "๐Ÿ™", + "\\:princess:" => "๐Ÿ‘ธ", + "\\:purple_heart:" => "๐Ÿ’œ", + "\\:purse:" => "๐Ÿ‘›", + "\\:pushpin:" => "๐Ÿ“Œ", + "\\:put_litter_in_its_place:" => "๐Ÿšฎ", + "\\:question:" => "โ“", + "\\:rabbit2:" => "๐Ÿ‡", + "\\:rabbit:" => "๐Ÿฐ", + "\\:racehorse:" => "๐ŸŽ", + "\\:radio:" => "๐Ÿ“ป", + "\\:radio_button:" => "๐Ÿ”˜", + "\\:rage:" => "๐Ÿ˜ก", + "\\:railway_car:" => "๐Ÿšƒ", + "\\:rainbow:" => "๐ŸŒˆ", + "\\:raised_hands:" => "๐Ÿ™Œ", + "\\:raising_hand:" => "๐Ÿ™‹", + "\\:ram:" => "๐Ÿ", + "\\:ramen:" => "๐Ÿœ", + "\\:rat:" => "๐Ÿ€", + "\\:recycle:" => "โ™ป", + "\\:red_circle:" => "๐Ÿ”ด", + "\\:registered:" => "ยฎ", + "\\:relaxed:" => "โ˜บ", + "\\:relieved:" => "๐Ÿ˜Œ", + "\\:repeat:" => "๐Ÿ”", + "\\:repeat_one:" => "๐Ÿ”‚", + "\\:restroom:" => "๐Ÿšป", + "\\:revolving_hearts:" => "๐Ÿ’ž", + "\\:rewind:" => "โช", + "\\:ribbon:" => "๐ŸŽ€", + "\\:rice:" => "๐Ÿš", + "\\:rice_ball:" => "๐Ÿ™", + "\\:rice_cracker:" => "๐Ÿ˜", + "\\:rice_scene:" => "๐ŸŽ‘", + "\\:ring:" => "๐Ÿ’", + "\\:rocket:" => "๐Ÿš€", + "\\:roller_coaster:" => "๐ŸŽข", + "\\:rooster:" => "๐Ÿ“", + "\\:rose:" => "๐ŸŒน", + "\\:rotating_light:" => "๐Ÿšจ", + "\\:round_pushpin:" => "๐Ÿ“", + "\\:rowboat:" => "๐Ÿšฃ", + "\\:rugby_football:" => "๐Ÿ‰", + "\\:runner:" => "๐Ÿƒ", + "\\:running_shirt_with_sash:" => "๐ŸŽฝ", + "\\:sa:" => "๐Ÿˆ‚", + "\\:sagittarius:" => "โ™", + "\\:sake:" => "๐Ÿถ", + "\\:sandal:" => "๐Ÿ‘ก", + "\\:santa:" => "๐ŸŽ…", + "\\:satellite:" => "๐Ÿ“ก", + "\\:saxophone:" => "๐ŸŽท", + "\\:school:" => "๐Ÿซ", + "\\:school_satchel:" => "๐ŸŽ’", + "\\:scissors:" => "โœ‚", + "\\:scorpius:" => "โ™", + "\\:scream:" => "๐Ÿ˜ฑ", + "\\:scream_cat:" => "๐Ÿ™€", + "\\:scroll:" => "๐Ÿ“œ", + "\\:seat:" => "๐Ÿ’บ", + "\\:secret:" => "ใŠ™", + "\\:see_no_evil:" => "๐Ÿ™ˆ", + "\\:seedling:" => "๐ŸŒฑ", + "\\:shaved_ice:" => "๐Ÿง", + "\\:sheep:" => "๐Ÿ‘", + "\\:shell:" => "๐Ÿš", + "\\:ship:" => "๐Ÿšข", + "\\:shirt:" => "๐Ÿ‘•", + "\\:shower:" => "๐Ÿšฟ", + "\\:signal_strength:" => "๐Ÿ“ถ", + "\\:six_pointed_star:" => "๐Ÿ”ฏ", + "\\:ski:" => "๐ŸŽฟ", + "\\:skin-tone-2:" => "\U1f3fb", + "\\:skin-tone-3:" => "\U1f3fc", + "\\:skin-tone-4:" => "\U1f3fd", + "\\:skin-tone-5:" => "\U1f3fe", + "\\:skin-tone-6:" => "\U1f3ff", + "\\:skull:" => "๐Ÿ’€", + "\\:sleeping:" => "๐Ÿ˜ด", + "\\:sleepy:" => "๐Ÿ˜ช", + "\\:slot_machine:" => "๐ŸŽฐ", + "\\:small_blue_diamond:" => "๐Ÿ”น", + "\\:small_orange_diamond:" => "๐Ÿ”ธ", + "\\:small_red_triangle:" => "๐Ÿ”บ", + "\\:small_red_triangle_down:" => "๐Ÿ”ป", + "\\:smile:" => "๐Ÿ˜„", + "\\:smile_cat:" => "๐Ÿ˜ธ", + "\\:smiley:" => "๐Ÿ˜ƒ", + "\\:smiley_cat:" => "๐Ÿ˜บ", + "\\:smiling_imp:" => "๐Ÿ˜ˆ", + "\\:smirk:" => "๐Ÿ˜", + "\\:smirk_cat:" => "๐Ÿ˜ผ", + "\\:smoking:" => "๐Ÿšฌ", + "\\:snail:" => "๐ŸŒ", + "\\:snake:" => "๐Ÿ", + "\\:snowboarder:" => "๐Ÿ‚", + "\\:snowflake:" => "โ„", + "\\:snowman:" => "โ›„", + "\\:sob:" => "๐Ÿ˜ญ", + "\\:soccer:" => "โšฝ", + "\\:soon:" => "๐Ÿ”œ", + "\\:sos:" => "๐Ÿ†˜", + "\\:sound:" => "๐Ÿ”‰", + "\\:space_invader:" => "๐Ÿ‘พ", + "\\:spades:" => "โ™ ", + "\\:spaghetti:" => "๐Ÿ", + "\\:sparkle:" => "โ‡", + "\\:sparkler:" => "๐ŸŽ‡", + "\\:sparkles:" => "โœจ", + "\\:sparkling_heart:" => "๐Ÿ’–", + "\\:speak_no_evil:" => "๐Ÿ™Š", + "\\:speaker:" => "๐Ÿ”ˆ", + "\\:speech_balloon:" => "๐Ÿ’ฌ", + "\\:speedboat:" => "๐Ÿšค", + "\\:star2:" => "๐ŸŒŸ", + "\\:star:" => "โญ", + "\\:stars:" => "๐ŸŒ ", + "\\:station:" => "๐Ÿš‰", + "\\:statue_of_liberty:" => "๐Ÿ—ฝ", + "\\:steam_locomotive:" => "๐Ÿš‚", + "\\:stew:" => "๐Ÿฒ", + "\\:straight_ruler:" => "๐Ÿ“", + "\\:strawberry:" => "๐Ÿ“", + "\\:stuck_out_tongue:" => "๐Ÿ˜›", + "\\:stuck_out_tongue_closed_eyes:" => "๐Ÿ˜", + "\\:stuck_out_tongue_winking_eye:" => "๐Ÿ˜œ", + "\\:sun_with_face:" => "๐ŸŒž", + "\\:sunflower:" => "๐ŸŒป", + "\\:sunglasses:" => "๐Ÿ˜Ž", + "\\:sunny:" => "โ˜€", + "\\:sunrise:" => "๐ŸŒ…", + "\\:sunrise_over_mountains:" => "๐ŸŒ„", + "\\:surfer:" => "๐Ÿ„", + "\\:sushi:" => "๐Ÿฃ", + "\\:suspension_railway:" => "๐ŸšŸ", + "\\:sweat:" => "๐Ÿ˜“", + "\\:sweat_drops:" => "๐Ÿ’ฆ", + "\\:sweat_smile:" => "๐Ÿ˜…", + "\\:sweet_potato:" => "๐Ÿ ", + "\\:swimmer:" => "๐ŸŠ", + "\\:symbols:" => "๐Ÿ”ฃ", + "\\:syringe:" => "๐Ÿ’‰", + "\\:tada:" => "๐ŸŽ‰", + "\\:tanabata_tree:" => "๐ŸŽ‹", + "\\:tangerine:" => "๐ŸŠ", + "\\:taurus:" => "โ™‰", + "\\:taxi:" => "๐Ÿš•", + "\\:tea:" => "๐Ÿต", + "\\:telephone_receiver:" => "๐Ÿ“ž", + "\\:telescope:" => "๐Ÿ”ญ", + "\\:tennis:" => "๐ŸŽพ", + "\\:tent:" => "โ›บ", + "\\:thought_balloon:" => "๐Ÿ’ญ", + "\\:ticket:" => "๐ŸŽซ", + "\\:tiger2:" => "๐Ÿ…", + "\\:tiger:" => "๐Ÿฏ", + "\\:tired_face:" => "๐Ÿ˜ซ", + "\\:tm:" => "โ„ข", + "\\:toilet:" => "๐Ÿšฝ", + "\\:tokyo_tower:" => "๐Ÿ—ผ", + "\\:tomato:" => "๐Ÿ…", + "\\:tongue:" => "๐Ÿ‘…", + "\\:top:" => "๐Ÿ”", + "\\:tophat:" => "๐ŸŽฉ", + "\\:tractor:" => "๐Ÿšœ", + "\\:traffic_light:" => "๐Ÿšฅ", + "\\:train2:" => "๐Ÿš†", + "\\:train:" => "๐Ÿš‹", + "\\:tram:" => "๐ŸšŠ", + "\\:triangular_flag_on_post:" => "๐Ÿšฉ", + "\\:triangular_ruler:" => "๐Ÿ“", + "\\:trident:" => "๐Ÿ”ฑ", + "\\:triumph:" => "๐Ÿ˜ค", + "\\:trolleybus:" => "๐ŸšŽ", + "\\:trophy:" => "๐Ÿ†", + "\\:tropical_drink:" => "๐Ÿน", + "\\:tropical_fish:" => "๐Ÿ ", + "\\:truck:" => "๐Ÿšš", + "\\:trumpet:" => "๐ŸŽบ", + "\\:tulip:" => "๐ŸŒท", + "\\:turtle:" => "๐Ÿข", + "\\:tv:" => "๐Ÿ“บ", + "\\:twisted_rightwards_arrows:" => "๐Ÿ”€", + "\\:two_hearts:" => "๐Ÿ’•", + "\\:two_men_holding_hands:" => "๐Ÿ‘ฌ", + "\\:two_women_holding_hands:" => "๐Ÿ‘ญ", + "\\:u5272:" => "๐Ÿˆน", + "\\:u5408:" => "๐Ÿˆด", + "\\:u55b6:" => "๐Ÿˆบ", + "\\:u6307:" => "๐Ÿˆฏ", + "\\:u6708:" => "๐Ÿˆท", + "\\:u6709:" => "๐Ÿˆถ", + "\\:u6e80:" => "๐Ÿˆต", + "\\:u7121:" => "๐Ÿˆš", + "\\:u7533:" => "๐Ÿˆธ", + "\\:u7981:" => "๐Ÿˆฒ", + "\\:u7a7a:" => "๐Ÿˆณ", + "\\:umbrella:" => "โ˜”", + "\\:unamused:" => "๐Ÿ˜’", + "\\:underage:" => "๐Ÿ”ž", + "\\:unlock:" => "๐Ÿ”“", + "\\:up:" => "๐Ÿ†™", + "\\:v:" => "โœŒ", + "\\:vertical_traffic_light:" => "๐Ÿšฆ", + "\\:vhs:" => "๐Ÿ“ผ", + "\\:vibration_mode:" => "๐Ÿ“ณ", + "\\:video_camera:" => "๐Ÿ“น", + "\\:video_game:" => "๐ŸŽฎ", + "\\:violin:" => "๐ŸŽป", + "\\:virgo:" => "โ™", + "\\:volcano:" => "๐ŸŒ‹", + "\\:vs:" => "๐Ÿ†š", + "\\:walking:" => "๐Ÿšถ", + "\\:waning_crescent_moon:" => "๐ŸŒ˜", + "\\:waning_gibbous_moon:" => "๐ŸŒ–", + "\\:warning:" => "โš ", + "\\:watch:" => "โŒš", + "\\:water_buffalo:" => "๐Ÿƒ", + "\\:watermelon:" => "๐Ÿ‰", + "\\:wave:" => "๐Ÿ‘‹", + "\\:wavy_dash:" => "ใ€ฐ", + "\\:waxing_crescent_moon:" => "๐ŸŒ’", + "\\:wc:" => "๐Ÿšพ", + "\\:weary:" => "๐Ÿ˜ฉ", + "\\:wedding:" => "๐Ÿ’’", + "\\:whale2:" => "๐Ÿ‹", + "\\:whale:" => "๐Ÿณ", + "\\:wheelchair:" => "โ™ฟ", + "\\:white_check_mark:" => "โœ…", + "\\:white_circle:" => "โšช", + "\\:white_flower:" => "๐Ÿ’ฎ", + "\\:white_large_square:" => "โฌœ", + "\\:white_medium_small_square:" => "โ—ฝ", + "\\:white_medium_square:" => "โ—ป", + "\\:white_small_square:" => "โ–ซ", + "\\:white_square_button:" => "๐Ÿ”ณ", + "\\:wind_chime:" => "๐ŸŽ", + "\\:wine_glass:" => "๐Ÿท", + "\\:wink:" => "๐Ÿ˜‰", + "\\:wolf:" => "๐Ÿบ", + "\\:woman:" => "๐Ÿ‘ฉ", + "\\:womans_clothes:" => "๐Ÿ‘š", + "\\:womans_hat:" => "๐Ÿ‘’", + "\\:womens:" => "๐Ÿšบ", + "\\:worried:" => "๐Ÿ˜Ÿ", + "\\:wrench:" => "๐Ÿ”ง", + "\\:x:" => "โŒ", + "\\:yellow_heart:" => "๐Ÿ’›", + "\\:yen:" => "๐Ÿ’ด", + "\\:yum:" => "๐Ÿ˜‹", + "\\:zap:" => "โšก", + "\\:zzz:" => "๐Ÿ’ค", +) diff --git a/test/replcompletions.jl b/test/replcompletions.jl index ae05254fbb450d..d1e093d59f34b3 100644 --- a/test/replcompletions.jl +++ b/test/replcompletions.jl @@ -48,7 +48,7 @@ end test_complete(s) = completions(s,endof(s)) test_scomplete(s) = shell_completions(s,endof(s)) -test_latexcomplete(s) = latex_completions(s,endof(s))[2] +test_bslashcomplete(s) = bslash_completions(s,endof(s))[2] s = "" c,r = test_complete(s) @@ -118,18 +118,32 @@ c,r,res = test_complete(s) # test latex symbol completions s = "\\alpha" -c,r = test_latexcomplete(s) +c,r = test_bslashcomplete(s) @test c[1] == "ฮฑ" @test r == 1:length(s) @test length(c) == 1 # test latex symbol completions after unicode #9209 s = "ฮฑ\\alpha" -c,r = test_latexcomplete(s) +c,r = test_bslashcomplete(s) @test c[1] == "ฮฑ" @test r == 3:sizeof(s) @test length(c) == 1 +# test emoji symbol completions +s = "\\:koala:" +c,r = test_bslashcomplete(s) +@test c[1] == "๐Ÿจ" +@test r == 1:sizeof(s) +@test length(c) == 1 + +# test emoji symbol completions after unicode #9209 +s = "ฮฑ\\:koala:" +c,r = test_bslashcomplete(s) +@test c[1] == "๐Ÿจ" +@test r == 3:sizeof(s) +@test length(c) == 1 + # test latex symbol completions in strings should not work when there # is a backslash in front of `\alpha` because it interferes with path completion on windows s = "cd(\"path_to_an_empty_folder_should_not_complete_latex\\\\\\alpha"