├── .eslintrc.json ├── .gitignore ├── Readme.md ├── lerna.json ├── package-lock.json ├── package.json └── packages ├── dictionary ├── index.js └── package.json ├── emoji ├── emoji.txt ├── index.js └── package.json ├── gocode ├── Readme.md ├── index.js └── package.json ├── neosnippet ├── Readme.md ├── index.js └── package.json ├── omni ├── Readme.md ├── index.js └── package.json ├── syntax ├── index.js └── package.json ├── tag ├── index.js └── package.json ├── ultisnips ├── Readme.md ├── index.js └── package.json └── word ├── 10k.txt ├── Readme.md ├── index.js └── package.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": false 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/node 2 | 3 | ### Node ### 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | yarn-debug.log* 9 | yarn-error.log* 10 | 11 | # Runtime data 12 | pids 13 | *.pid 14 | *.seed 15 | *.pid.lock 16 | 17 | # Directory for instrumented libs generated by jscoverage/JSCover 18 | lib-cov 19 | 20 | # Coverage directory used by tools like istanbul 21 | coverage 22 | 23 | # nyc test coverage 24 | .nyc_output 25 | 26 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 27 | .grunt 28 | 29 | # Bower dependency directory (https://bower.io/) 30 | bower_components 31 | 32 | # node-waf configuration 33 | .lock-wscript 34 | 35 | # Compiled binary addons (http://nodejs.org/api/addons.html) 36 | build/Release 37 | 38 | # Dependency directories 39 | node_modules/ 40 | jspm_packages/ 41 | 42 | # Typescript v1 declaration files 43 | typings/ 44 | 45 | # Optional npm cache directory 46 | .npm 47 | 48 | # Optional eslint cache 49 | .eslintcache 50 | 51 | # Optional REPL history 52 | .node_repl_history 53 | 54 | # Output of 'npm pack' 55 | *.tgz 56 | 57 | # Yarn Integrity file 58 | .yarn-integrity 59 | 60 | # dotenv environment variables file 61 | .env 62 | 63 | 64 | # End of https://www.gitignore.io/api/node 65 | 66 | lib/ 67 | 68 | .vim 69 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # coc-sources 2 | 3 | Some extra completion sources of [coc.nvim](https://github.com/neoclide/coc.nvim). 4 | 5 | Install what you need by command `:CocInstall {name}` 6 | 7 | - coc-dictionary 8 | 9 | Words from files in `&dictionary`. 10 | 11 | ```vim 12 | :CocInstall coc-dictionary 13 | ``` 14 | 15 | - coc-tag 16 | 17 | Words from `tagfiles()` 18 | 19 | ```vim 20 | :CocInstall coc-tag 21 | ``` 22 | 23 | **Note:** you need generate the tag files yourself. 24 | 25 | To get the tags of current buffer, use command `:echo tagfiles()`. 26 | 27 | - coc-word 28 | 29 | Words from google 10000 english repo. 30 | 31 | ```vim 32 | :CocInstall coc-word 33 | ``` 34 | 35 | - coc-emoji 36 | 37 | Emoji words, default enabled for `markdown` file only. 38 | 39 | ```vim 40 | :CocInstall coc-emoji 41 | ``` 42 | 43 | To complete emoji source, type `:` as trigger character. 44 | 45 | It is also possible to change the emoji trigger character by putting 46 | `"coc.source.emoji.triggerCharacters": ["TRIGGERCHAR"]` in your `coc-settings.json` 47 | 48 | - coc-omni 49 | 50 | Completion use `&omnifunc` of current buffer. 51 | 52 | ```vim 53 | :CocInstall coc-omni 54 | ``` 55 | 56 | **Note:** Using omni completion in coc.nvim is not recommended, it will block vim on 57 | completion. 58 | 59 | **Note:** You must configure `coc.source.omni.filetypes` with filetypes you want omni 60 | source to work. 61 | 62 | **Don't** enable this source for filetypes that you're using language server 63 | for completion. 64 | 65 | - coc-syntax 66 | 67 | Words from syntax list, see `:help ft-syntax-omni` in your vim. 68 | 69 | ```vim 70 | :CocInstall coc-syntax 71 | ``` 72 | 73 | - coc-gocode 74 | 75 | Completion use [gocode](https://github.com/mdempsky/gocode) for golang. 76 | 77 | ```vim 78 | :CocInstall coc-gocode 79 | ``` 80 | 81 | - coc-ultisnips 82 | 83 | Completion for items from [ultisnips](https://github.com/SirVer/ultisnips) 84 | 85 | ```vim 86 | :CocInstall coc-ultisnips 87 | ``` 88 | 89 | ❗**Important:** this source could be block and not work when ultisnips plugin not loaded in vim. 90 | 91 | - coc-neosnippet 92 | 93 | Completion for items from [neosnippet](https://github.com/Shougo/neosnippet.vim) 94 | 95 | ```vim 96 | :CocInstall coc-neosnippet 97 | ``` 98 | 99 | ❗**Important:** this source could be block and not work when neosnippet plugin not loaded in vim. 100 | 101 | ## Configure 102 | 103 | Following properties could be configured: 104 | 105 | - `enable` set to false to disable source totally. 106 | - `priority` priority of source. 107 | - `shortcut` shortcut used in `menu` of completion item. 108 | - `filetypes` enabled filetypes, enable for all filetypes when `null`. 109 | - `disableSyntaxes` syntax names used to disable completion, ex: `['string', 'comment']`. 110 | 111 | Install `coc-json` by `:CocInstall coc-json` and Type `coc.source` settings file 112 | opened by `:CocConfig` to get completion for all available configurations. 113 | 114 | ## F.A.Q 115 | 116 | **Q:** Omni completion not working. 117 | 118 | **A:** Make sure current filetype is included in `coc.source.omni.filetypes` section of your 119 | `coc-settings.json`, then make sure `omnifunc` is specified for current buffer 120 | by command: `:echo &omnifunc`. 121 | 122 | **Q:** Completion items of Ultisnips/neosnippet not shown. 123 | 124 | **A:** It won't work when your ultisnips or neosnippet plugin not loaded. For 125 | better experience, consider use [coc-snippets](https://github.com/neoclide/coc-snippets) instead. 126 | 127 | ## LICENSE 128 | 129 | MIT 130 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*" 4 | ], 5 | "npmClient": "yarn", 6 | "useWorkspaces": true, 7 | "version": "1.3.0" 8 | } 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "root", 3 | "private": true, 4 | "workspaces": [ 5 | "packages/*" 6 | ], 7 | "devDependencies": { 8 | "eslint": "^9.22.0", 9 | "lerna": "^3.4.3" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/dictionary/index.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | const readline = require('readline') 3 | const util = require('util') 4 | const { sources, workspace } = require('coc.nvim') 5 | 6 | const DICT_CACHE = {} 7 | 8 | function readFileByLine(file, limit = 300000) { 9 | const set = new Set() 10 | const rl = readline.createInterface({ 11 | input: fs.createReadStream(file), 12 | crlfDelay: Infinity, 13 | terminal: false, 14 | highWaterMark: 1024 * 1024 15 | }) 16 | let n = 0 17 | rl.on('line', line => { 18 | n = n + 1 19 | if (n === limit) { 20 | rl.close() 21 | } else if (line.length > 0) { 22 | let words = line.split(/\s+/) 23 | for (let word of words) { 24 | if (word.length > 1) set.add(word) 25 | } 26 | } 27 | }) 28 | return new Promise((resolve, reject) => { 29 | rl.on('close', () => { 30 | resolve(set) 31 | }) 32 | rl.on('error', reject) 33 | }) 34 | } 35 | 36 | async function getDictWords(file) { 37 | try { 38 | let stat = await util.promisify(fs.stat)(file) 39 | if (!stat || !stat.isFile()) return null 40 | let cache = DICT_CACHE[file] 41 | if (cache && cache.mtime == stat.mtime) { 42 | return cache.words 43 | } 44 | let words = await readFileByLine(file) 45 | DICT_CACHE[file] = { mtime: stat.mtime, words } 46 | return words 47 | } catch (e) { 48 | console.error(e) 49 | } 50 | return [] 51 | } 52 | 53 | async function getWords(files) { 54 | if (files.length == 0) return [] 55 | let arr = await Promise.all(files.map(file => getDictWords(file))) 56 | let res = new Set() 57 | for (let words of arr) { 58 | if (words == null) continue 59 | for (let word of words) { 60 | if (!res.has(word)) res.add(word) 61 | } 62 | } 63 | return Array.from(res) 64 | } 65 | 66 | function filterWords(words, opt) { 67 | let res = [] 68 | let { input } = opt 69 | for (let word of words) { 70 | if (word.length <= input.length) continue 71 | let first = input[0] 72 | if ([input, word].every(str => /^[A-Za-z]{1,}$/.test(str))) { 73 | if (!word.startsWith(first.toLowerCase())) continue 74 | let code = first.charCodeAt(0) 75 | let upperCase = code <= 90 && code >= 65 76 | word = upperCase ? word[0].toUpperCase() + word.slice(1) : word 77 | } else if (!word.startsWith(first)) continue 78 | res.push(word) 79 | } 80 | return res 81 | } 82 | 83 | exports.activate = async context => { 84 | let { nvim } = workspace 85 | 86 | let source = { 87 | name: 'dictionary', 88 | triggerCharacters: [], 89 | doComplete: async function (opt) { 90 | let dictOption = await nvim.eval('&dictionary') 91 | if (!dictOption || opt.input.length == 0) return null 92 | let files = dictOption.split(',') 93 | let words = await getWords(files) 94 | words = filterWords(words, opt) 95 | return { 96 | items: words.map(word => { 97 | return { 98 | word, 99 | menu: this.menu 100 | } 101 | }) 102 | } 103 | } 104 | } 105 | 106 | context.subscriptions.push(sources.createSource(source)) 107 | } 108 | -------------------------------------------------------------------------------- /packages/dictionary/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-dictionary", 3 | "version": "1.2.3", 4 | "description": "dictionary source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "dictionary" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.dictionary.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.dictionary.shortcut": { 29 | "type": "string", 30 | "default": "D" 31 | }, 32 | "coc.source.dictionary.disableSyntaxes": { 33 | "type": "array", 34 | "default": [], 35 | "items": { 36 | "type": "string" 37 | } 38 | }, 39 | "coc.source.dictionary.priority": { 40 | "type": "integer", 41 | "default": 1 42 | }, 43 | "coc.source.dictionary.filetypes": { 44 | "type": [ 45 | "array", 46 | "null" 47 | ], 48 | "default": null, 49 | "items": { 50 | "type": "string" 51 | } 52 | } 53 | } 54 | } 55 | }, 56 | "author": "chemzqm@gmail.com", 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/neoclide/coc-sources/issues" 60 | }, 61 | "homepage": "https://github.com/neoclide/coc-sources#readme", 62 | "devDependencies": { 63 | "coc.nvim": ">=0.0.57" 64 | }, 65 | "gitHead": "7ead63e794458e58e85d93556be8bf566ad1ceeb" 66 | } 67 | -------------------------------------------------------------------------------- /packages/emoji/emoji.txt: -------------------------------------------------------------------------------- 1 | mahjong:🀄 2 | black_joker:🃏 3 | a:🅰 4 | b:🅱 5 | o2:🅾 6 | parking:🅿 7 | ab:🆎 8 | cl:🆑 9 | cool:🆒 10 | free:🆓 11 | id:🆔 12 | new:🆕 13 | ng:🆖 14 | ok:🆗 15 | sos:🆘 16 | up:🆙 17 | vs:🆚 18 | flag_ac:🇦🇨 19 | flag_ad:🇦🇩 20 | flag_ae:🇦🇪 21 | flag_af:🇦🇫 22 | flag_ag:🇦🇬 23 | flag_ai:🇦🇮 24 | flag_al:🇦🇱 25 | flag_am:🇦🇲 26 | flag_ao:🇦🇴 27 | flag_aq:🇦🇶 28 | flag_ar:🇦🇷 29 | flag_as:🇦🇸 30 | flag_at:🇦🇹 31 | flag_au:🇦🇺 32 | flag_aw:🇦🇼 33 | flag_ax:🇦🇽 34 | flag_az:🇦🇿 35 | regional_indicator_a:🇦 36 | flag_ba:🇧🇦 37 | flag_bb:🇧🇧 38 | flag_bd:🇧🇩 39 | flag_be:🇧🇪 40 | flag_bf:🇧🇫 41 | flag_bg:🇧🇬 42 | flag_bh:🇧🇭 43 | flag_bi:🇧🇮 44 | flag_bj:🇧🇯 45 | flag_bl:🇧🇱 46 | flag_bm:🇧🇲 47 | flag_bn:🇧🇳 48 | flag_bo:🇧🇴 49 | flag_bq:🇧🇶 50 | flag_br:🇧🇷 51 | flag_bs:🇧🇸 52 | flag_bt:🇧🇹 53 | flag_bv:🇧🇻 54 | flag_bw:🇧🇼 55 | flag_by:🇧🇾 56 | flag_bz:🇧🇿 57 | regional_indicator_b:🇧 58 | flag_ca:🇨🇦 59 | flag_cc:🇨🇨 60 | flag_cd:🇨🇩 61 | flag_cf:🇨🇫 62 | flag_cg:🇨🇬 63 | flag_ch:🇨🇭 64 | flag_ci:🇨🇮 65 | flag_ck:🇨🇰 66 | flag_cl:🇨🇱 67 | flag_cm:🇨🇲 68 | flag_cn:🇨🇳 69 | flag_co:🇨🇴 70 | flag_cp:🇨🇵 71 | flag_cr:🇨🇷 72 | flag_cu:🇨🇺 73 | flag_cv:🇨🇻 74 | flag_cw:🇨🇼 75 | flag_cx:🇨🇽 76 | flag_cy:🇨🇾 77 | flag_cz:🇨🇿 78 | regional_indicator_c:🇨 79 | flag_de:🇩🇪 80 | flag_dg:🇩🇬 81 | flag_dj:🇩🇯 82 | flag_dk:🇩🇰 83 | flag_dm:🇩🇲 84 | flag_do:🇩🇴 85 | flag_dz:🇩🇿 86 | regional_indicator_d:🇩 87 | flag_ea:🇪🇦 88 | flag_ec:🇪🇨 89 | flag_ee:🇪🇪 90 | flag_eg:🇪🇬 91 | flag_eh:🇪🇭 92 | flag_er:🇪🇷 93 | flag_es:🇪🇸 94 | flag_et:🇪🇹 95 | flag_eu:🇪🇺 96 | regional_indicator_e:🇪 97 | flag_fi:🇫🇮 98 | flag_fj:🇫🇯 99 | flag_fk:🇫🇰 100 | flag_fm:🇫🇲 101 | flag_fo:🇫🇴 102 | flag_fr:🇫🇷 103 | regional_indicator_f:🇫 104 | flag_ga:🇬🇦 105 | flag_gb:🇬🇧 106 | flag_gd:🇬🇩 107 | flag_ge:🇬🇪 108 | flag_gf:🇬🇫 109 | flag_gg:🇬🇬 110 | flag_gh:🇬🇭 111 | flag_gi:🇬🇮 112 | flag_gl:🇬🇱 113 | flag_gm:🇬🇲 114 | flag_gn:🇬🇳 115 | flag_gp:🇬🇵 116 | flag_gq:🇬🇶 117 | flag_gr:🇬🇷 118 | flag_gs:🇬🇸 119 | flag_gt:🇬🇹 120 | flag_gu:🇬🇺 121 | flag_gw:🇬🇼 122 | flag_gy:🇬🇾 123 | regional_indicator_g:🇬 124 | flag_hk:🇭🇰 125 | flag_hm:🇭🇲 126 | flag_hn:🇭🇳 127 | flag_hr:🇭🇷 128 | flag_ht:🇭🇹 129 | flag_hu:🇭🇺 130 | regional_indicator_h:🇭 131 | flag_ic:🇮🇨 132 | flag_id:🇮🇩 133 | flag_ie:🇮🇪 134 | flag_il:🇮🇱 135 | flag_im:🇮🇲 136 | flag_in:🇮🇳 137 | flag_io:🇮🇴 138 | flag_iq:🇮🇶 139 | flag_ir:🇮🇷 140 | flag_is:🇮🇸 141 | flag_it:🇮🇹 142 | regional_indicator_i:🇮 143 | flag_je:🇯🇪 144 | flag_jm:🇯🇲 145 | flag_jo:🇯🇴 146 | flag_jp:🇯🇵 147 | regional_indicator_j:🇯 148 | flag_ke:🇰🇪 149 | flag_kg:🇰🇬 150 | flag_kh:🇰🇭 151 | flag_ki:🇰🇮 152 | flag_km:🇰🇲 153 | flag_kn:🇰🇳 154 | flag_kp:🇰🇵 155 | flag_kr:🇰🇷 156 | flag_kw:🇰🇼 157 | flag_ky:🇰🇾 158 | flag_kz:🇰🇿 159 | regional_indicator_k:🇰 160 | flag_la:🇱🇦 161 | flag_lb:🇱🇧 162 | flag_lc:🇱🇨 163 | flag_li:🇱🇮 164 | flag_lk:🇱🇰 165 | flag_lr:🇱🇷 166 | flag_ls:🇱🇸 167 | flag_lt:🇱🇹 168 | flag_lu:🇱🇺 169 | flag_lv:🇱🇻 170 | flag_ly:🇱🇾 171 | regional_indicator_l:🇱 172 | flag_ma:🇲🇦 173 | flag_mc:🇲🇨 174 | flag_md:🇲🇩 175 | flag_me:🇲🇪 176 | flag_mf:🇲🇫 177 | flag_mg:🇲🇬 178 | flag_mh:🇲🇭 179 | flag_mk:🇲🇰 180 | flag_ml:🇲🇱 181 | flag_mm:🇲🇲 182 | flag_mn:🇲🇳 183 | flag_mo:🇲🇴 184 | flag_mp:🇲🇵 185 | flag_mq:🇲🇶 186 | flag_mr:🇲🇷 187 | flag_ms:🇲🇸 188 | flag_mt:🇲🇹 189 | flag_mu:🇲🇺 190 | flag_mv:🇲🇻 191 | flag_mw:🇲🇼 192 | flag_mx:🇲🇽 193 | flag_my:🇲🇾 194 | flag_mz:🇲🇿 195 | regional_indicator_m:🇲 196 | flag_na:🇳🇦 197 | flag_nc:🇳🇨 198 | flag_ne:🇳🇪 199 | flag_nf:🇳🇫 200 | flag_ng:🇳🇬 201 | flag_ni:🇳🇮 202 | flag_nl:🇳🇱 203 | flag_no:🇳🇴 204 | flag_np:🇳🇵 205 | flag_nr:🇳🇷 206 | flag_nu:🇳🇺 207 | flag_nz:🇳🇿 208 | regional_indicator_n:🇳 209 | flag_om:🇴🇲 210 | regional_indicator_o:🇴 211 | flag_pa:🇵🇦 212 | flag_pe:🇵🇪 213 | flag_pf:🇵🇫 214 | flag_pg:🇵🇬 215 | flag_ph:🇵🇭 216 | flag_pk:🇵🇰 217 | flag_pl:🇵🇱 218 | flag_pm:🇵🇲 219 | flag_pn:🇵🇳 220 | flag_pr:🇵🇷 221 | flag_ps:🇵🇸 222 | flag_pt:🇵🇹 223 | flag_pw:🇵🇼 224 | flag_py:🇵🇾 225 | regional_indicator_p:🇵 226 | flag_qa:🇶🇦 227 | regional_indicator_q:🇶 228 | flag_re:🇷🇪 229 | flag_ro:🇷🇴 230 | flag_rs:🇷🇸 231 | flag_ru:🇷🇺 232 | flag_rw:🇷🇼 233 | regional_indicator_r:🇷 234 | flag_sa:🇸🇦 235 | flag_sb:🇸🇧 236 | flag_sc:🇸🇨 237 | flag_sd:🇸🇩 238 | flag_se:🇸🇪 239 | flag_sg:🇸🇬 240 | flag_sh:🇸🇭 241 | flag_si:🇸🇮 242 | flag_sj:🇸🇯 243 | flag_sk:🇸🇰 244 | flag_sl:🇸🇱 245 | flag_sm:🇸🇲 246 | flag_sn:🇸🇳 247 | flag_so:🇸🇴 248 | flag_sr:🇸🇷 249 | flag_ss:🇸🇸 250 | flag_st:🇸🇹 251 | flag_sv:🇸🇻 252 | flag_sx:🇸🇽 253 | flag_sy:🇸🇾 254 | flag_sz:🇸🇿 255 | regional_indicator_s:🇸 256 | flag_ta:🇹🇦 257 | flag_tc:🇹🇨 258 | flag_td:🇹🇩 259 | flag_tf:🇹🇫 260 | flag_tg:🇹🇬 261 | flag_th:🇹🇭 262 | flag_tj:🇹🇯 263 | flag_tk:🇹🇰 264 | flag_tl:🇹🇱 265 | flag_tm:🇹🇲 266 | flag_tn:🇹🇳 267 | flag_to:🇹🇴 268 | flag_tr:🇹🇷 269 | flag_tt:🇹🇹 270 | flag_tv:🇹🇻 271 | flag_tw:🇹🇼 272 | flag_tz:🇹🇿 273 | regional_indicator_t:🇹 274 | flag_ua:🇺🇦 275 | flag_ug:🇺🇬 276 | flag_um:🇺🇲 277 | regional_indicator_uregional_indicator_n:🇺🇳 278 | flag_us:🇺🇸 279 | flag_uy:🇺🇾 280 | flag_uz:🇺🇿 281 | regional_indicator_u:🇺 282 | flag_va:🇻🇦 283 | flag_vc:🇻🇨 284 | flag_ve:🇻🇪 285 | flag_vg:🇻🇬 286 | flag_vi:🇻🇮 287 | flag_vn:🇻🇳 288 | flag_vu:🇻🇺 289 | regional_indicator_v:🇻 290 | flag_wf:🇼🇫 291 | flag_ws:🇼🇸 292 | regional_indicator_w:🇼 293 | flag_xk:🇽🇰 294 | regional_indicator_x:🇽 295 | flag_ye:🇾🇪 296 | flag_yt:🇾🇹 297 | regional_indicator_y:🇾 298 | flag_za:🇿🇦 299 | flag_zm:🇿🇲 300 | flag_zw:🇿🇼 301 | regional_indicator_z:🇿 302 | koko:🈁 303 | sa:🈂 304 | u7121:🈚 305 | u6307:🈯 306 | u7981:🈲 307 | u7a7a:🈳 308 | u5408:🈴 309 | u6e80:🈵 310 | u6709:🈶 311 | u6708:🈷 312 | u7533:🈸 313 | u5272:🈹 314 | u55b6:🈺 315 | ideograph_advantage:🉐 316 | accept:🉑 317 | cyclone:🌀 318 | foggy:🌁 319 | closed_umbrella:🌂 320 | night_with_stars:🌃 321 | sunrise_over_mountains:🌄 322 | sunrise:🌅 323 | city_dusk:🌆 324 | city_sunset:🌇 325 | rainbow:🌈 326 | bridge_at_night:🌉 327 | ocean:🌊 328 | volcano:🌋 329 | milky_way:🌌 330 | earth_africa:🌍 331 | earth_americas:🌎 332 | earth_asia:🌏 333 | globe_with_meridians:🌐 334 | new_moon:🌑 335 | waxing_crescent_moon:🌒 336 | first_quarter_moon:🌓 337 | waxing_gibbous_moon:🌔 338 | full_moon:🌕 339 | waning_gibbous_moon:🌖 340 | last_quarter_moon:🌗 341 | waning_crescent_moon:🌘 342 | crescent_moon:🌙 343 | new_moon_with_face:🌚 344 | first_quarter_moon_with_face:🌛 345 | last_quarter_moon_with_face:🌜 346 | full_moon_with_face:🌝 347 | sun_with_face:🌞 348 | star2:🌟 349 | stars:🌠 350 | thermometer:🌡 351 | white_sun_small_cloud:🌤 352 | white_sun_cloud:🌥 353 | white_sun_rain_cloud:🌦 354 | cloud_rain:🌧 355 | cloud_snow:🌨 356 | cloud_lightning:🌩 357 | cloud_tornado:🌪 358 | fog:🌫 359 | wind_blowing_face:🌬 360 | hotdog:🌭 361 | taco:🌮 362 | burrito:🌯 363 | chestnut:🌰 364 | seedling:🌱 365 | evergreen_tree:🌲 366 | deciduous_tree:🌳 367 | palm_tree:🌴 368 | cactus:🌵 369 | hot_pepper:🌶 370 | tulip:🌷 371 | cherry_blossom:🌸 372 | rose:🌹 373 | hibiscus:🌺 374 | sunflower:🌻 375 | blossom:🌼 376 | corn:🌽 377 | ear_of_rice:🌾 378 | herb:🌿 379 | four_leaf_clover:🍀 380 | maple_leaf:🍁 381 | fallen_leaf:🍂 382 | leaves:🍃 383 | mushroom:🍄 384 | tomato:🍅 385 | eggplant:🍆 386 | grapes:🍇 387 | melon:🍈 388 | watermelon:🍉 389 | tangerine:🍊 390 | lemon:🍋 391 | banana:🍌 392 | pineapple:🍍 393 | apple:🍎 394 | green_apple:🍏 395 | pear:🍐 396 | peach:🍑 397 | cherries:🍒 398 | strawberry:🍓 399 | hamburger:🍔 400 | pizza:🍕 401 | meat_on_bone:🍖 402 | poultry_leg:🍗 403 | rice_cracker:🍘 404 | rice_ball:🍙 405 | rice:🍚 406 | curry:🍛 407 | ramen:🍜 408 | spaghetti:🍝 409 | bread:🍞 410 | fries:🍟 411 | sweet_potato:🍠 412 | dango:🍡 413 | oden:🍢 414 | sushi:🍣 415 | fried_shrimp:🍤 416 | fish_cake:🍥 417 | icecream:🍦 418 | shaved_ice:🍧 419 | ice_cream:🍨 420 | doughnut:🍩 421 | cookie:🍪 422 | chocolate_bar:🍫 423 | candy:🍬 424 | lollipop:🍭 425 | custard:🍮 426 | honey_pot:🍯 427 | cake:🍰 428 | bento:🍱 429 | stew:🍲 430 | cooking:🍳 431 | fork_and_knife:🍴 432 | tea:🍵 433 | sake:🍶 434 | wine_glass:🍷 435 | cocktail:🍸 436 | tropical_drink:🍹 437 | beer:🍺 438 | beers:🍻 439 | baby_bottle:🍼 440 | fork_knife_plate:🍽 441 | champagne:🍾 442 | popcorn:🍿 443 | ribbon:🎀 444 | gift:🎁 445 | birthday:🎂 446 | jack_o_lantern:🎃 447 | christmas_tree:🎄 448 | santa_tone1:🎅🏻 449 | santa_tone2:🎅🏼 450 | santa_tone3:🎅🏽 451 | santa_tone4:🎅🏾 452 | santa_tone5:🎅🏿 453 | santa:🎅 454 | fireworks:🎆 455 | sparkler:🎇 456 | balloon:🎈 457 | tada:🎉 458 | confetti_ball:🎊 459 | tanabata_tree:🎋 460 | crossed_flags:🎌 461 | bamboo:🎍 462 | dolls:🎎 463 | flags:🎏 464 | wind_chime:🎐 465 | rice_scene:🎑 466 | school_satchel:🎒 467 | mortar_board:🎓 468 | military_medal:🎖 469 | reminder_ribbon:🎗 470 | microphone2:🎙 471 | level_slider:🎚 472 | control_knobs:🎛 473 | film_frames:🎞 474 | tickets:🎟 475 | carousel_horse:🎠 476 | ferris_wheel:🎡 477 | roller_coaster:🎢 478 | fishing_pole_and_fish:🎣 479 | microphone:🎤 480 | movie_camera:🎥 481 | cinema:🎦 482 | headphones:🎧 483 | art:🎨 484 | tophat:🎩 485 | circus_tent:🎪 486 | ticket:🎫 487 | clapper:🎬 488 | performing_arts:🎭 489 | video_game:🎮 490 | dart:🎯 491 | slot_machine:🎰 492 | 8ball:🎱 493 | game_die:🎲 494 | bowling:🎳 495 | flower_playing_cards:🎴 496 | musical_note:🎵 497 | notes:🎶 498 | saxophone:🎷 499 | guitar:🎸 500 | musical_keyboard:🎹 501 | trumpet:🎺 502 | violin:🎻 503 | musical_score:🎼 504 | running_shirt_with_sash:🎽 505 | tennis:🎾 506 | ski:🎿 507 | basketball:🏀 508 | checkered_flag:🏁 509 | snowboardertone1:🏂🏻 510 | snowboardertone2:🏂🏼 511 | snowboardertone3:🏂🏽 512 | snowboardertone4:🏂🏾 513 | snowboardertone5:🏂🏿 514 | snowboarder:🏂 515 | runner_tone5:🏃🏿 516 | runner:🏃 517 | surfer_tone5:🏄🏿 518 | surfer:🏄 519 | medal:🏅 520 | trophy:🏆 521 | horse_racing_tone1:🏇🏻 522 | horse_racing_tone2:🏇🏼 523 | horse_racing:🏇 524 | football:🏈 525 | rugby_football:🏉 526 | swimmer:🏊 527 | lifter_tone5:🏋🏿 528 | lifter:🏋 529 | golfertone5:🏌🏿 530 | golfer:🏌 531 | motorcycle:🏍 532 | race_car:🏎 533 | cricket:🏏 534 | volleyball:🏐 535 | field_hockey:🏑 536 | hockey:🏒 537 | ping_pong:🏓 538 | mountain_snow:🏔 539 | camping:🏕 540 | beach:🏖 541 | construction_site:🏗 542 | homes:🏘 543 | cityscape:🏙 544 | house_abandoned:🏚 545 | classical_building:🏛 546 | desert:🏜 547 | island:🏝 548 | park:🏞 549 | stadium:🏟 550 | house:🏠 551 | house_with_garden:🏡 552 | office:🏢 553 | post_office:🏣 554 | european_post_office:🏤 555 | hospital:🏥 556 | bank:🏦 557 | atm:🏧 558 | hotel:🏨 559 | love_hotel:🏩 560 | convenience_store:🏪 561 | school:🏫 562 | department_store:🏬 563 | factory:🏭 564 | izakaya_lantern:🏮 565 | japanese_castle:🏯 566 | european_castle:🏰 567 | flag_white:🏳 568 | flag_black:🏴 569 | rosette:🏵 570 | label:🏷 571 | badminton:🏸 572 | bow_and_arrow:🏹 573 | amphora:🏺 574 | rat:🐀 575 | mouse2:🐁 576 | ox:🐂 577 | water_buffalo:🐃 578 | cow2:🐄 579 | tiger2:🐅 580 | leopard:🐆 581 | rabbit2:🐇 582 | cat2:🐈 583 | dragon:🐉 584 | crocodile:🐊 585 | whale2:🐋 586 | snail:🐌 587 | snake:🐍 588 | racehorse:🐎 589 | ram:🐏 590 | goat:🐐 591 | sheep:🐑 592 | monkey:🐒 593 | rooster:🐓 594 | chicken:🐔 595 | dog2:🐕 596 | pig2:🐖 597 | boar:🐗 598 | elephant:🐘 599 | octopus:🐙 600 | shell:🐚 601 | bug:🐛 602 | ant:🐜 603 | bee:🐝 604 | beetle:🐞 605 | fish:🐟 606 | tropical_fish:🐠 607 | blowfish:🐡 608 | turtle:🐢 609 | hatching_chick:🐣 610 | baby_chick:🐤 611 | hatched_chick:🐥 612 | bird:🐦 613 | penguin:🐧 614 | koala:🐨 615 | poodle:🐩 616 | dromedary_camel:🐪 617 | camel:🐫 618 | dolphin:🐬 619 | mouse:🐭 620 | cow:🐮 621 | tiger:🐯 622 | rabbit:🐰 623 | cat:🐱 624 | dragon_face:🐲 625 | whale:🐳 626 | horse:🐴 627 | monkey_face:🐵 628 | dog:🐶 629 | pig:🐷 630 | frog:🐸 631 | hamster:🐹 632 | wolf:🐺 633 | bear:🐻 634 | panda_face:🐼 635 | pig_nose:🐽 636 | feet:🐾 637 | chipmunk:🐿 638 | eyes:👀 639 | eye:👁 640 | ear_tone1:👂🏻 641 | ear:👂 642 | nose_tone1:👃🏻 643 | nose_tone2:👃🏼 644 | nose_tone3:👃🏽 645 | nose_tone4:👃🏾 646 | nose:👃 647 | lips:👄 648 | tongue:👅 649 | point_up_2_tone1:👆🏻 650 | point_up_2:👆 651 | point_down:👇 652 | point_left:👈 653 | point_right_tone1:👉🏻 654 | point_right_tone2:👉🏼 655 | point_right_tone3:👉🏽 656 | point_right_tone4:👉🏾 657 | point_right:👉 658 | punch_tone1:👊🏻 659 | punch:👊 660 | wave_tone1:👋🏻 661 | wave_tone2:👋🏼 662 | wave_tone3:👋🏽 663 | wave_tone4:👋🏾 664 | wave:👋 665 | ok_hand_tone1:👌🏻 666 | ok_hand:👌 667 | thumbsup_tone1:👍🏻 668 | thumbsup_tone2:👍🏼 669 | thumbsup:👍 670 | thumbsdown_tone1:👎🏻 671 | thumbsdown:👎 672 | clap_tone1:👏🏻 673 | clap:👏 674 | open_hands_tone1:👐🏻 675 | open_hands:👐 676 | crown:👑 677 | womans_hat:👒 678 | eyeglasses:👓 679 | necktie:👔 680 | shirt:👕 681 | jeans:👖 682 | dress:👗 683 | kimono:👘 684 | bikini:👙 685 | womans_clothes:👚 686 | purse:👛 687 | handbag:👜 688 | pouch:👝 689 | mans_shoe:👞 690 | athletic_shoe:👟 691 | high_heel:👠 692 | sandal:👡 693 | boot:👢 694 | footprints:👣 695 | bust_in_silhouette:👤 696 | busts_in_silhouette:👥 697 | boy_tone1:👦🏻 698 | boy_tone2:👦🏼 699 | boy_tone3:👦🏽 700 | boy_tone4:👦🏾 701 | boy_tone5:👦🏿 702 | boy:👦 703 | girl_tone1:👧🏻 704 | girl_tone2:👧🏼 705 | girl_tone3:👧🏽 706 | girl_tone4:👧🏾 707 | girl_tone5:👧🏿 708 | girl:👧 709 | man_tone3:👨🏽 710 | man_tone5:👨🏿 711 | man:👨 712 | woman_tone2:👩🏼 713 | woman_tone3:👩🏽 714 | woman_tone4:👩🏾 715 | woman_tone5:👩🏿 716 | woman:👩 717 | familytone1:👪🏻 718 | familytone2:👪🏼 719 | familytone3:👪🏽 720 | familytone4:👪🏾 721 | familytone5:👪🏿 722 | family:👪 723 | coupletone1:👫🏻 724 | coupletone2:👫🏼 725 | coupletone3:👫🏽 726 | coupletone4:👫🏾 727 | coupletone5:👫🏿 728 | couple:👫 729 | two_men_holding_handstone1:👬🏻 730 | two_men_holding_hands:👬 731 | two_women_holding_handstone1:👭🏻 732 | two_women_holding_hands:👭 733 | cop_tone5:👮🏿 734 | cop:👮 735 | dancerstone5:👯🏿 736 | dancers:👯 737 | bride_with_veil_tone1:👰🏻 738 | bride_with_veil:👰 739 | person_with_blond_hair_tone1:👱🏻 740 | person_with_blond_hair_tone2:👱🏼 741 | person_with_blond_hair_tone3:👱🏽 742 | person_with_blond_hair_tone4:👱🏾 743 | person_with_blond_hair_tone5:👱🏿 744 | person_with_blond_hair:👱 745 | man_with_gua_pi_mao_tone1:👲🏻 746 | man_with_gua_pi_mao_tone2:👲🏼 747 | man_with_gua_pi_mao:👲 748 | man_with_turban_tone1:👳🏻 749 | man_with_turban_tone2:👳🏼 750 | man_with_turban_tone3:👳🏽 751 | man_with_turban_tone4:👳🏾 752 | man_with_turban_tone5:👳🏿 753 | man_with_turban:👳 754 | older_man_tone1:👴🏻 755 | older_man_tone2:👴🏼 756 | older_man:👴 757 | older_woman_tone1:👵🏻 758 | older_woman_tone2:👵🏼 759 | older_woman_tone3:👵🏽 760 | older_woman:👵 761 | baby_tone1:👶🏻 762 | baby_tone2:👶🏼 763 | baby:👶 764 | construction_worker_tone1:👷🏻 765 | construction_worker_tone2:👷🏼 766 | construction_worker_tone3:👷🏽 767 | construction_worker_tone4:👷🏾 768 | construction_worker_tone5:👷🏿 769 | construction_worker:👷 770 | princess_tone1:👸🏻 771 | princess_tone2:👸🏼 772 | princess_tone3:👸🏽 773 | princess_tone4:👸🏾 774 | princess_tone5:👸🏿 775 | princess:👸 776 | japanese_ogre:👹 777 | japanese_goblin:👺 778 | ghost:👻 779 | angel_tone1:👼🏻 780 | angel_tone2:👼🏼 781 | angel_tone3:👼🏽 782 | angel_tone4:👼🏾 783 | angel_tone5:👼🏿 784 | angel:👼 785 | alien:👽 786 | space_invader:👾 787 | imp:👿 788 | skull:💀 789 | information_desk_person_tone1:💁🏻 790 | information_desk_person_tone2:💁🏼 791 | information_desk_person_tone3:💁🏽 792 | information_desk_person_tone4:💁🏾 793 | information_desk_person_tone5:💁🏿 794 | information_desk_person:💁 795 | guardsman_tone1:💂🏻 796 | guardsman_tone2:💂🏼 797 | guardsman_tone3:💂🏽 798 | guardsman_tone4:💂🏾 799 | guardsman_tone5:💂🏿 800 | guardsman:💂 801 | dancer_tone1:💃🏻 802 | dancer_tone2:💃🏼 803 | dancer_tone3:💃🏽 804 | dancer_tone4:💃🏾 805 | dancer_tone5:💃🏿 806 | dancer:💃 807 | lipstick:💄 808 | nail_care_tone1:💅🏻 809 | nail_care_tone2:💅🏼 810 | nail_care_tone3:💅🏽 811 | nail_care_tone4:💅🏾 812 | nail_care_tone5:💅🏿 813 | nail_care:💅 814 | massage_tone1:💆🏻 815 | massage_tone2:💆🏼 816 | massage_tone3:💆🏽 817 | massage_tone4:💆🏾 818 | massage_tone5:💆🏿 819 | massage:💆 820 | haircut_tone1:💇🏻 821 | haircut_tone2:💇🏼 822 | haircut_tone3:💇🏽 823 | haircut_tone4:💇🏾 824 | haircut_tone5:💇🏿 825 | haircut:💇 826 | barber:💈 827 | syringe:💉 828 | pill:💊 829 | kiss:💋 830 | love_letter:💌 831 | ring:💍 832 | gem:💎 833 | couplekiss:💏 834 | bouquet:💐 835 | couple_with_heart:💑 836 | wedding:💒 837 | heartbeat:💓 838 | broken_heart:💔 839 | two_hearts:💕 840 | sparkling_heart:💖 841 | heartpulse:💗 842 | cupid:💘 843 | blue_heart:💙 844 | green_heart:💚 845 | yellow_heart:💛 846 | purple_heart:💜 847 | gift_heart:💝 848 | revolving_hearts:💞 849 | heart_decoration:💟 850 | diamond_shape_with_a_dot_inside:💠 851 | bulb:💡 852 | anger:💢 853 | bomb:💣 854 | zzz:💤 855 | boom:💥 856 | sweat_drops:💦 857 | droplet:💧 858 | dash:💨 859 | poop:💩 860 | muscle_tone1:💪🏻 861 | muscle_tone2:💪🏼 862 | muscle_tone3:💪🏽 863 | muscle_tone4:💪🏾 864 | muscle_tone5:💪🏿 865 | muscle:💪 866 | dizzy:💫 867 | speech_balloon:💬 868 | thought_balloon:💭 869 | white_flower:💮 870 | 100:💯 871 | moneybag:💰 872 | currency_exchange:💱 873 | heavy_dollar_sign:💲 874 | credit_card:💳 875 | yen:💴 876 | dollar:💵 877 | euro:💶 878 | pound:💷 879 | money_with_wings:💸 880 | chart:💹 881 | seat:💺 882 | computer:💻 883 | briefcase:💼 884 | minidisc:💽 885 | floppy_disk:💾 886 | cd:💿 887 | dvd:📀 888 | file_folder:📁 889 | open_file_folder:📂 890 | page_with_curl:📃 891 | page_facing_up:📄 892 | date:📅 893 | calendar:📆 894 | card_index:📇 895 | chart_with_upwards_trend:📈 896 | chart_with_downwards_trend:📉 897 | bar_chart:📊 898 | clipboard:📋 899 | pushpin:📌 900 | round_pushpin:📍 901 | paperclip:📎 902 | straight_ruler:📏 903 | triangular_ruler:📐 904 | bookmark_tabs:📑 905 | ledger:📒 906 | notebook:📓 907 | notebook_with_decorative_cover:📔 908 | closed_book:📕 909 | book:📖 910 | green_book:📗 911 | blue_book:📘 912 | orange_book:📙 913 | books:📚 914 | name_badge:📛 915 | scroll:📜 916 | pencil:📝 917 | telephone_receiver:📞 918 | pager:📟 919 | fax:📠 920 | satellite:📡 921 | loudspeaker:📢 922 | mega:📣 923 | outbox_tray:📤 924 | inbox_tray:📥 925 | package:📦 926 | e-mail:📧 927 | incoming_envelope:📨 928 | envelope_with_arrow:📩 929 | mailbox_closed:📪 930 | mailbox:📫 931 | mailbox_with_mail:📬 932 | mailbox_with_no_mail:📭 933 | postbox:📮 934 | postal_horn:📯 935 | newspaper:📰 936 | iphone:📱 937 | calling:📲 938 | vibration_mode:📳 939 | mobile_phone_off:📴 940 | no_mobile_phones:📵 941 | signal_strength:📶 942 | camera:📷 943 | camera_with_flash:📸 944 | video_camera:📹 945 | tv:📺 946 | radio:📻 947 | vhs:📼 948 | projector:📽 949 | prayer_beads:📿 950 | twisted_rightwards_arrows:🔀 951 | repeat:🔁 952 | repeat_one:🔂 953 | arrows_clockwise:🔃 954 | arrows_counterclockwise:🔄 955 | low_brightness:🔅 956 | high_brightness:🔆 957 | mute:🔇 958 | speaker:🔈 959 | sound:🔉 960 | loud_sound:🔊 961 | battery:🔋 962 | electric_plug:🔌 963 | mag:🔍 964 | mag_right:🔎 965 | lock_with_ink_pen:🔏 966 | closed_lock_with_key:🔐 967 | key:🔑 968 | lock:🔒 969 | unlock:🔓 970 | bell:🔔 971 | no_bell:🔕 972 | bookmark:🔖 973 | link:🔗 974 | radio_button:🔘 975 | back:🔙 976 | end:🔚 977 | on:🔛 978 | soon:🔜 979 | top:🔝 980 | underage:🔞 981 | keycap_ten:🔟 982 | capital_abcd:🔠 983 | abcd:🔡 984 | 1234:🔢 985 | symbols:🔣 986 | abc:🔤 987 | fire:🔥 988 | flashlight:🔦 989 | wrench:🔧 990 | hammer:🔨 991 | nut_and_bolt:🔩 992 | knife:🔪 993 | gun:🔫 994 | microscope:🔬 995 | telescope:🔭 996 | crystal_ball:🔮 997 | six_pointed_star:🔯 998 | beginner:🔰 999 | trident:🔱 1000 | black_square_button:🔲 1001 | white_square_button:🔳 1002 | red_circle:🔴 1003 | large_blue_circle:🔵 1004 | large_orange_diamond:🔶 1005 | large_blue_diamond:🔷 1006 | small_orange_diamond:🔸 1007 | small_blue_diamond:🔹 1008 | small_red_triangle:🔺 1009 | small_red_triangle_down:🔻 1010 | arrow_up_small:🔼 1011 | arrow_down_small:🔽 1012 | om_symbol:🕉 1013 | dove:🕊 1014 | kaaba:🕋 1015 | mosque:🕌 1016 | synagogue:🕍 1017 | menorah:🕎 1018 | clock1:🕐 1019 | clock2:🕑 1020 | clock3:🕒 1021 | clock4:🕓 1022 | clock5:🕔 1023 | clock6:🕕 1024 | clock7:🕖 1025 | clock8:🕗 1026 | clock9:🕘 1027 | clock10:🕙 1028 | clock11:🕚 1029 | clock12:🕛 1030 | clock130:🕜 1031 | clock230:🕝 1032 | clock330:🕞 1033 | clock430:🕟 1034 | clock530:🕠 1035 | clock630:🕡 1036 | clock730:🕢 1037 | clock830:🕣 1038 | clock930:🕤 1039 | clock1030:🕥 1040 | clock1130:🕦 1041 | clock1230:🕧 1042 | candle:🕯 1043 | clock:🕰 1044 | hole:🕳 1045 | levitatetone1:🕴🏻 1046 | levitatetone2:🕴🏼 1047 | levitatetone3:🕴🏽 1048 | levitatetone4:🕴🏾 1049 | levitatetone5:🕴🏿 1050 | levitate:🕴 1051 | spy_tone1:🕵🏻 1052 | spy_tone2:🕵🏼 1053 | spy_tone3:🕵🏽 1054 | spy_tone4:🕵🏾 1055 | spy_tone5:🕵🏿 1056 | spy:🕵 1057 | dark_sunglasses:🕶 1058 | spider:🕷 1059 | spider_web:🕸 1060 | joystick:🕹 1061 | man_dancing_tone1:🕺🏻 1062 | man_dancing_tone2:🕺🏼 1063 | man_dancing_tone3:🕺🏽 1064 | man_dancing_tone4:🕺🏾 1065 | man_dancing_tone5:🕺🏿 1066 | man_dancing:🕺 1067 | paperclips:🖇 1068 | pen_ballpoint:🖊 1069 | pen_fountain:🖋 1070 | paintbrush:🖌 1071 | crayon:🖍 1072 | hand_splayed_tone1:🖐🏻 1073 | hand_splayed_tone2:🖐🏼 1074 | hand_splayed_tone3:🖐🏽 1075 | hand_splayed_tone4:🖐🏾 1076 | hand_splayed_tone5:🖐🏿 1077 | hand_splayed:🖐 1078 | middle_finger_tone1:🖕🏻 1079 | middle_finger_tone2:🖕🏼 1080 | middle_finger_tone3:🖕🏽 1081 | middle_finger_tone4:🖕🏾 1082 | middle_finger_tone5:🖕🏿 1083 | middle_finger:🖕 1084 | vulcan_tone1:🖖🏻 1085 | vulcan_tone2:🖖🏼 1086 | vulcan_tone3:🖖🏽 1087 | vulcan_tone4:🖖🏾 1088 | vulcan_tone5:🖖🏿 1089 | vulcan:🖖 1090 | black_heart:🖤 1091 | desktop:🖥 1092 | printer:🖨 1093 | mouse_three_button:🖱 1094 | trackball:🖲 1095 | frame_photo:🖼 1096 | dividers:🗂 1097 | card_box:🗃 1098 | file_cabinet:🗄 1099 | wastebasket:🗑 1100 | notepad_spiral:🗒 1101 | calendar_spiral:🗓 1102 | compression:🗜 1103 | key2:🗝 1104 | newspaper2:🗞 1105 | dagger:🗡 1106 | speaking_head:🗣 1107 | speech_left:🗨 1108 | anger_right:🗯 1109 | ballot_box:🗳 1110 | map:🗺 1111 | mount_fuji:🗻 1112 | tokyo_tower:🗼 1113 | statue_of_liberty:🗽 1114 | japan:🗾 1115 | moyai:🗿 1116 | grinning:😀 1117 | grin:😁 1118 | joy:😂 1119 | smiley:😃 1120 | smile:😄 1121 | sweat_smile:😅 1122 | laughing:😆 1123 | innocent:😇 1124 | smiling_imp:😈 1125 | wink:😉 1126 | blush:😊 1127 | yum:😋 1128 | relieved:😌 1129 | heart_eyes:😍 1130 | sunglasses:😎 1131 | smirk:😏 1132 | neutral_face:😐 1133 | expressionless:😑 1134 | unamused:😒 1135 | sweat:😓 1136 | pensive:😔 1137 | confused:😕 1138 | confounded:😖 1139 | kissing:😗 1140 | kissing_heart:😘 1141 | kissing_smiling_eyes:😙 1142 | kissing_closed_eyes:😚 1143 | stuck_out_tongue:😛 1144 | stuck_out_tongue_winking_eye:😜 1145 | stuck_out_tongue_closed_eyes:😝 1146 | disappointed:😞 1147 | worried:😟 1148 | angry:😠 1149 | rage:😡 1150 | cry:😢 1151 | persevere:😣 1152 | triumph:😤 1153 | disappointed_relieved:😥 1154 | frowning:😦 1155 | anguished:😧 1156 | fearful:😨 1157 | weary:😩 1158 | sleepy:😪 1159 | tired_face:😫 1160 | grimacing:😬 1161 | sob:😭 1162 | open_mouth:😮 1163 | hushed:😯 1164 | cold_sweat:😰 1165 | scream:😱 1166 | astonished:😲 1167 | flushed:😳 1168 | sleeping:😴 1169 | dizzy_face:😵 1170 | no_mouth:😶 1171 | mask:😷 1172 | smile_cat:😸 1173 | joy_cat:😹 1174 | smiley_cat:😺 1175 | heart_eyes_cat:😻 1176 | smirk_cat:😼 1177 | kissing_cat:😽 1178 | pouting_cat:😾 1179 | crying_cat_face:😿 1180 | scream_cat:🙀 1181 | slight_frown:🙁 1182 | slight_smile:🙂 1183 | upside_down:🙃 1184 | rolling_eyes:🙄 1185 | no_good_tone1:🙅🏻 1186 | no_good_tone2:🙅🏼 1187 | no_good_tone3:🙅🏽 1188 | no_good_tone4:🙅🏾 1189 | no_good_tone5:🙅🏿 1190 | no_good:🙅 1191 | ok_woman_tone1:🙆🏻 1192 | ok_woman_tone2:🙆🏼 1193 | ok_woman_tone3:🙆🏽 1194 | ok_woman_tone4:🙆🏾 1195 | ok_woman_tone5:🙆🏿 1196 | ok_woman:🙆 1197 | bow_tone1:🙇🏻 1198 | bow_tone2:🙇🏼 1199 | bow_tone3:🙇🏽 1200 | bow_tone4:🙇🏾 1201 | bow_tone5:🙇🏿 1202 | bow:🙇 1203 | see_no_evil:🙈 1204 | hear_no_evil:🙉 1205 | speak_no_evil:🙊 1206 | raising_hand_tone1:🙋🏻 1207 | raising_hand_tone2:🙋🏼 1208 | raising_hand_tone3:🙋🏽 1209 | raising_hand_tone4:🙋🏾 1210 | raising_hand_tone5:🙋🏿 1211 | raising_hand:🙋 1212 | raised_hands_tone1:🙌🏻 1213 | raised_hands_tone2:🙌🏼 1214 | raised_hands_tone3:🙌🏽 1215 | raised_hands_tone4:🙌🏾 1216 | raised_hands_tone5:🙌🏿 1217 | raised_hands:🙌 1218 | person_frowning_tone1:🙍🏻 1219 | person_frowning_tone2:🙍🏼 1220 | person_frowning_tone3:🙍🏽 1221 | person_frowning_tone4:🙍🏾 1222 | person_frowning_tone5:🙍🏿 1223 | person_frowning:🙍 1224 | person_with_pouting_face_tone1:🙎🏻 1225 | person_with_pouting_face_tone2:🙎🏼 1226 | person_with_pouting_face_tone3:🙎🏽 1227 | person_with_pouting_face_tone4:🙎🏾 1228 | person_with_pouting_face_tone5:🙎🏿 1229 | person_with_pouting_face:🙎 1230 | pray_tone1:🙏🏻 1231 | pray_tone2:🙏🏼 1232 | pray_tone3:🙏🏽 1233 | pray_tone4:🙏🏾 1234 | pray_tone5:🙏🏿 1235 | pray:🙏 1236 | rocket:🚀 1237 | helicopter:🚁 1238 | steam_locomotive:🚂 1239 | railway_car:🚃 1240 | bullettrain_side:🚄 1241 | bullettrain_front:🚅 1242 | train2:🚆 1243 | metro:🚇 1244 | light_rail:🚈 1245 | station:🚉 1246 | tram:🚊 1247 | train:🚋 1248 | bus:🚌 1249 | oncoming_bus:🚍 1250 | trolleybus:🚎 1251 | busstop:🚏 1252 | minibus:🚐 1253 | ambulance:🚑 1254 | fire_engine:🚒 1255 | police_car:🚓 1256 | oncoming_police_car:🚔 1257 | taxi:🚕 1258 | oncoming_taxi:🚖 1259 | red_car:🚗 1260 | oncoming_automobile:🚘 1261 | blue_car:🚙 1262 | truck:🚚 1263 | articulated_lorry:🚛 1264 | tractor:🚜 1265 | monorail:🚝 1266 | mountain_railway:🚞 1267 | suspension_railway:🚟 1268 | mountain_cableway:🚠 1269 | aerial_tramway:🚡 1270 | ship:🚢 1271 | rowboat_tone1:🚣🏻 1272 | rowboat_tone2:🚣🏼 1273 | rowboat_tone3:🚣🏽 1274 | rowboat_tone4:🚣🏾 1275 | rowboat_tone5:🚣🏿 1276 | rowboat:🚣 1277 | speedboat:🚤 1278 | traffic_light:🚥 1279 | vertical_traffic_light:🚦 1280 | construction:🚧 1281 | rotating_light:🚨 1282 | triangular_flag_on_post:🚩 1283 | door:🚪 1284 | no_entry_sign:🚫 1285 | smoking:🚬 1286 | no_smoking:🚭 1287 | put_litter_in_its_place:🚮 1288 | do_not_litter:🚯 1289 | potable_water:🚰 1290 | non-potable_water:🚱 1291 | bike:🚲 1292 | no_bicycles:🚳 1293 | bicyclist_tone1:🚴🏻 1294 | bicyclist_tone2:🚴🏼 1295 | bicyclist_tone3:🚴🏽 1296 | bicyclist_tone4:🚴🏾 1297 | bicyclist_tone5:🚴🏿 1298 | bicyclist:🚴 1299 | mountain_bicyclist_tone1:🚵🏻 1300 | mountain_bicyclist_tone2:🚵🏼 1301 | mountain_bicyclist_tone3:🚵🏽 1302 | mountain_bicyclist_tone4:🚵🏾 1303 | mountain_bicyclist_tone5:🚵🏿 1304 | mountain_bicyclist:🚵 1305 | walking_tone1:🚶🏻 1306 | walking_tone2:🚶🏼 1307 | walking_tone3:🚶🏽 1308 | walking_tone4:🚶🏾 1309 | walking_tone5:🚶🏿 1310 | walking:🚶 1311 | no_pedestrians:🚷 1312 | children_crossing:🚸 1313 | mens:🚹 1314 | womens:🚺 1315 | restroom:🚻 1316 | baby_symbol:🚼 1317 | toilet:🚽 1318 | wc:🚾 1319 | shower:🚿 1320 | bath_tone1:🛀🏻 1321 | bath_tone2:🛀🏼 1322 | bath_tone3:🛀🏽 1323 | bath_tone4:🛀🏾 1324 | bath_tone5:🛀🏿 1325 | bath:🛀 1326 | bathtub:🛁 1327 | passport_control:🛂 1328 | customs:🛃 1329 | baggage_claim:🛄 1330 | left_luggage:🛅 1331 | couch:🛋 1332 | sleeping_accommodationtone1:🛌🏻 1333 | sleeping_accommodationtone2:🛌🏼 1334 | sleeping_accommodationtone3:🛌🏽 1335 | sleeping_accommodationtone4:🛌🏾 1336 | sleeping_accommodationtone5:🛌🏿 1337 | sleeping_accommodation:🛌 1338 | shopping_bags:🛍 1339 | bellhop:🛎 1340 | bed:🛏 1341 | place_of_worship:🛐 1342 | octagonal_sign:🛑 1343 | shopping_cart:🛒 1344 | tools:🛠 1345 | shield:🛡 1346 | oil:🛢 1347 | motorway:🛣 1348 | railway_track:🛤 1349 | motorboat:🛥 1350 | airplane_small:🛩 1351 | airplane_departure:🛫 1352 | airplane_arriving:🛬 1353 | satellite_orbital:🛰 1354 | cruise_ship:🛳 1355 | scooter:🛴 1356 | motor_scooter:🛵 1357 | canoe:🛶 1358 | zipper_mouth:🤐 1359 | money_mouth:🤑 1360 | thermometer_face:🤒 1361 | nerd:🤓 1362 | thinking:🤔 1363 | head_bandage:🤕 1364 | robot:🤖 1365 | hugging:🤗 1366 | metal_tone1:🤘🏻 1367 | metal_tone2:🤘🏼 1368 | metal_tone3:🤘🏽 1369 | metal_tone4:🤘🏾 1370 | metal_tone5:🤘🏿 1371 | metal:🤘 1372 | call_me_tone1:🤙🏻 1373 | call_me_tone2:🤙🏼 1374 | call_me_tone3:🤙🏽 1375 | call_me_tone4:🤙🏾 1376 | call_me_tone5:🤙🏿 1377 | call_me:🤙 1378 | raised_back_of_hand_tone1:🤚🏻 1379 | raised_back_of_hand_tone2:🤚🏼 1380 | raised_back_of_hand_tone3:🤚🏽 1381 | raised_back_of_hand_tone4:🤚🏾 1382 | raised_back_of_hand_tone5:🤚🏿 1383 | raised_back_of_hand:🤚 1384 | left_facing_fist_tone1:🤛🏻 1385 | left_facing_fist_tone2:🤛🏼 1386 | left_facing_fist_tone3:🤛🏽 1387 | left_facing_fist_tone4:🤛🏾 1388 | left_facing_fist_tone5:🤛🏿 1389 | left_facing_fist:🤛 1390 | right_facing_fist_tone1:🤜🏻 1391 | right_facing_fist_tone2:🤜🏼 1392 | right_facing_fist_tone3:🤜🏽 1393 | right_facing_fist_tone4:🤜🏾 1394 | right_facing_fist_tone5:🤜🏿 1395 | right_facing_fist:🤜 1396 | handshake_tone1:🤝🏻 1397 | handshake_tone2:🤝🏼 1398 | handshake_tone3:🤝🏽 1399 | handshake_tone4:🤝🏾 1400 | handshake_tone5:🤝🏿 1401 | handshake:🤝 1402 | fingers_crossed_tone1:🤞🏻 1403 | fingers_crossed_tone2:🤞🏼 1404 | fingers_crossed_tone3:🤞🏽 1405 | fingers_crossed_tone4:🤞🏾 1406 | fingers_crossed_tone5:🤞🏿 1407 | fingers_crossed:🤞 1408 | cowboy:🤠 1409 | clown:🤡 1410 | nauseated_face:🤢 1411 | rofl:🤣 1412 | drooling_face:🤤 1413 | lying_face:🤥 1414 | face_palm_tone1:🤦🏻 1415 | face_palm_tone2:🤦🏼 1416 | face_palm_tone3:🤦🏽 1417 | face_palm_tone4:🤦🏾 1418 | face_palm_tone5:🤦🏿 1419 | face_palm:🤦 1420 | sneezing_face:🤧 1421 | pregnant_woman_tone1:🤰🏻 1422 | pregnant_woman_tone2:🤰🏼 1423 | pregnant_woman_tone3:🤰🏽 1424 | pregnant_woman_tone4:🤰🏾 1425 | pregnant_woman_tone5:🤰🏿 1426 | pregnant_woman:🤰 1427 | selfie_tone1:🤳🏻 1428 | selfie_tone2:🤳🏼 1429 | selfie_tone3:🤳🏽 1430 | selfie_tone4:🤳🏾 1431 | selfie_tone5:🤳🏿 1432 | selfie:🤳 1433 | prince_tone1:🤴🏻 1434 | prince_tone2:🤴🏼 1435 | prince_tone3:🤴🏽 1436 | prince_tone4:🤴🏾 1437 | prince_tone5:🤴🏿 1438 | prince:🤴 1439 | man_in_tuxedo_tone1:🤵🏻 1440 | man_in_tuxedo_tone2:🤵🏼 1441 | man_in_tuxedo_tone3:🤵🏽 1442 | man_in_tuxedo_tone4:🤵🏾 1443 | man_in_tuxedo_tone5:🤵🏿 1444 | man_in_tuxedo:🤵 1445 | mrs_claus_tone1:🤶🏻 1446 | mrs_claus_tone2:🤶🏼 1447 | mrs_claus_tone3:🤶🏽 1448 | mrs_claus_tone4:🤶🏾 1449 | mrs_claus_tone5:🤶🏿 1450 | mrs_claus:🤶 1451 | shrug_tone1:🤷🏻 1452 | shrug_tone2:🤷🏼 1453 | shrug_tone3:🤷🏽 1454 | shrug_tone4:🤷🏾 1455 | shrug_tone5:🤷🏿 1456 | shrug:🤷 1457 | cartwheel_tone1:🤸🏻 1458 | cartwheel_tone2:🤸🏼 1459 | cartwheel_tone3:🤸🏽 1460 | cartwheel_tone4:🤸🏾 1461 | cartwheel_tone5:🤸🏿 1462 | cartwheel:🤸 1463 | juggling_tone1:🤹🏻 1464 | juggling_tone2:🤹🏼 1465 | juggling_tone3:🤹🏽 1466 | juggling_tone4:🤹🏾 1467 | juggling_tone5:🤹🏿 1468 | juggling:🤹 1469 | fencer:🤺 1470 | wrestlers_tone1:🤼🏻 1471 | wrestlers_tone2:🤼🏼 1472 | wrestlers_tone3:🤼🏽 1473 | wrestlers_tone4:🤼🏾 1474 | wrestlers_tone5:🤼🏿 1475 | wrestlers:🤼 1476 | water_polo_tone1:🤽🏻 1477 | water_polo_tone2:🤽🏼 1478 | water_polo_tone3:🤽🏽 1479 | water_polo_tone4:🤽🏾 1480 | water_polo_tone5:🤽🏿 1481 | water_polo:🤽 1482 | handball_tone1:🤾🏻 1483 | handball_tone2:🤾🏼 1484 | handball_tone3:🤾🏽 1485 | handball_tone4:🤾🏾 1486 | handball_tone5:🤾🏿 1487 | handball:🤾 1488 | wilted_rose:🥀 1489 | drum:🥁 1490 | champagne_glass:🥂 1491 | tumbler_glass:🥃 1492 | spoon:🥄 1493 | goal:🥅 1494 | first_place:🥇 1495 | second_place:🥈 1496 | third_place:🥉 1497 | boxing_glove:🥊 1498 | martial_arts_uniform:🥋 1499 | croissant:🥐 1500 | avocado:🥑 1501 | cucumber:🥒 1502 | bacon:🥓 1503 | potato:🥔 1504 | carrot:🥕 1505 | french_bread:🥖 1506 | salad:🥗 1507 | shallow_pan_of_food:🥘 1508 | stuffed_flatbread:🥙 1509 | egg:🥚 1510 | milk:🥛 1511 | peanuts:🥜 1512 | kiwi:🥝 1513 | pancakes:🥞 1514 | crab:🦀 1515 | lion_face:🦁 1516 | scorpion:🦂 1517 | turkey:🦃 1518 | unicorn:🦄 1519 | eagle:🦅 1520 | duck:🦆 1521 | bat:🦇 1522 | shark:🦈 1523 | owl:🦉 1524 | fox:🦊 1525 | butterfly:🦋 1526 | deer:🦌 1527 | gorilla:🦍 1528 | lizard:🦎 1529 | rhino:🦏 1530 | shrimp:🦐 1531 | squid:🦑 1532 | cheese:🧀 1533 | bangbang:‼ 1534 | interrobang:⁉ 1535 | tm:™ 1536 | information_source:ℹ 1537 | left_right_arrow:↔ 1538 | arrow_up_down:↕ 1539 | arrow_upper_left:↖ 1540 | arrow_upper_right:↗ 1541 | arrow_lower_right:↘ 1542 | arrow_lower_left:↙ 1543 | leftwards_arrow_with_hook:↩ 1544 | arrow_right_hook:↪ 1545 | hash:#⃣ 1546 | watch:⌚ 1547 | hourglass:⌛ 1548 | keyboard:⌨ 1549 | eject:⏏ 1550 | fast_forward:⏩ 1551 | rewind:⏪ 1552 | arrow_double_up:⏫ 1553 | arrow_double_down:⏬ 1554 | track_next:⏭ 1555 | track_previous:⏮ 1556 | play_pause:⏯ 1557 | alarm_clock:⏰ 1558 | stopwatch:⏱ 1559 | timer:⏲ 1560 | hourglass_flowing_sand:⏳ 1561 | pause_button:⏸ 1562 | stop_button:⏹ 1563 | record_button:⏺ 1564 | m:Ⓜ 1565 | black_small_square:▪ 1566 | white_small_square:▫ 1567 | arrow_forward:▶ 1568 | arrow_backward:◀ 1569 | white_medium_square:◻ 1570 | black_medium_square:◼ 1571 | white_medium_small_square:◽ 1572 | black_medium_small_square:◾ 1573 | sunny:☀ 1574 | cloud:☁ 1575 | umbrella2:☂ 1576 | snowman2:☃ 1577 | comet:☄ 1578 | telephone:☎ 1579 | ballot_box_with_check:☑ 1580 | umbrella:☔ 1581 | coffee:☕ 1582 | shamrock:☘ 1583 | point_up_tone1:☝🏻 1584 | point_up_tone2:☝🏼 1585 | point_up_tone3:☝🏽 1586 | point_up_tone4:☝🏾 1587 | point_up_tone5:☝🏿 1588 | point_up:☝ 1589 | skull_crossbones:☠ 1590 | radioactive:☢ 1591 | biohazard:☣ 1592 | orthodox_cross:☦ 1593 | star_and_crescent:☪ 1594 | peace:☮ 1595 | yin_yang:☯ 1596 | wheel_of_dharma:☸ 1597 | frowning2:☹ 1598 | relaxed:☺ 1599 | female:♀ 1600 | male:♂ 1601 | aries:♈ 1602 | taurus:♉ 1603 | gemini:♊ 1604 | cancer:♋ 1605 | leo:♌ 1606 | virgo:♍ 1607 | libra:♎ 1608 | scorpius:♏ 1609 | sagittarius:♐ 1610 | capricorn:♑ 1611 | aquarius:♒ 1612 | pisces:♓ 1613 | spades:♠ 1614 | clubs:♣ 1615 | hearts:♥ 1616 | diamonds:♦ 1617 | hotsprings:♨ 1618 | recycle:♻ 1619 | wheelchair:♿ 1620 | anchor:⚓ 1621 | crossed_swords:⚔ 1622 | scales:⚖ 1623 | alembic:⚗ 1624 | gear:⚙ 1625 | atom:⚛ 1626 | fleur-de-lis:⚜ 1627 | warning:⚠ 1628 | zap:⚡ 1629 | white_circle:⚪ 1630 | black_circle:⚫ 1631 | coffin:⚰ 1632 | urn:⚱ 1633 | soccer:⚽ 1634 | baseball:⚾ 1635 | snowman:⛄ 1636 | partly_sunny:⛅ 1637 | thunder_cloud_rain:⛈ 1638 | ophiuchus:⛎ 1639 | pick:⛏ 1640 | helmet_with_cross:⛑ 1641 | chains:⛓ 1642 | no_entry:⛔ 1643 | shinto_shrine:⛩ 1644 | church:⛪ 1645 | mountain:⛰ 1646 | beach_umbrella:⛱ 1647 | fountain:⛲ 1648 | golf:⛳ 1649 | ferry:⛴ 1650 | sailboat:⛵ 1651 | skier:⛷ 1652 | ice_skate:⛸ 1653 | basketball_player_tone1:⛹🏻 1654 | basketball_player_tone2:⛹🏼 1655 | basketball_player_tone3:⛹🏽 1656 | basketball_player_tone4:⛹🏾 1657 | basketball_player_tone5:⛹🏿 1658 | basketball_player:⛹ 1659 | tent:⛺ 1660 | fuelpump:⛽ 1661 | scissors:✂ 1662 | white_check_mark:✅ 1663 | airplane:✈ 1664 | envelope:✉ 1665 | fist_tone1:✊🏻 1666 | fist:✊ 1667 | raised_hand_tone1:✋🏻 1668 | raised_hand:✋ 1669 | v_tone1:✌🏻 1670 | v:✌ 1671 | writing_hand_tone1:✍🏻 1672 | writing_hand:✍ 1673 | pencil2:✏ 1674 | black_nib:✒ 1675 | correct_done_right:✔ 1676 | x_multiplication_wrong:✖ 1677 | cross:✝ 1678 | star_of_david:✡ 1679 | sparkles:✨ 1680 | eight_spoked_asterisk:✳ 1681 | eight_pointed_black_star:✴ 1682 | snowflake:❄ 1683 | sparkle:❇ 1684 | x:❌ 1685 | negative_squared_cross_mark:❎ 1686 | question:❓ 1687 | grey_question:❔ 1688 | grey_exclamation:❕ 1689 | exclamation:❗ 1690 | heart_exclamation:❣ 1691 | heart:❤ 1692 | heavy_plus_sign:➕ 1693 | heavy_minus_sign:➖ 1694 | heavy_division_sign:➗ 1695 | arrow_right:➡ 1696 | curly_loop:➰ 1697 | loop:➿ 1698 | arrow_heading_up:⤴ 1699 | arrow_heading_down:⤵ 1700 | asterisk:*⃣ 1701 | arrow_left:⬅ 1702 | arrow_up:⬆ 1703 | arrow_down:⬇ 1704 | black_large_square:⬛ 1705 | white_large_square:⬜ 1706 | star:⭐ 1707 | o:⭕ 1708 | zero:0⃣ 1709 | wavy_dash:〰 1710 | part_alternation_mark:〽 1711 | one:1⃣ 1712 | two:2⃣ 1713 | congratulations:㊗ 1714 | secret:㊙ 1715 | three:3⃣ 1716 | four:4⃣ 1717 | five:5⃣ 1718 | six:6⃣ 1719 | seven:7⃣ 1720 | eight:8⃣ 1721 | nine:9⃣ 1722 | copyright:© 1723 | registered:® 1724 | grinning_face:😀 1725 | grinning_face_with_big_eyes:😃 1726 | grinning_face_with_smiling_eyes:😄 1727 | beaming_face_with_smiling_eyes:😁 1728 | grinning_squinting_face:😆 1729 | grinning_face_with_sweat:😅 1730 | rolling_on_the_floor_laughing:🤣 1731 | face_with_tears_of_joy:😂 1732 | slightly_smiling_face:🙂 1733 | upside-down_face:🙃 1734 | winking_face:😉 1735 | smiling_face_with_smiling_eyes:😊 1736 | smiling_face_with_halo:😇 1737 | smiling_face_with_hearts:🥰 1738 | smiling_face_with_heart-eyes:😍 1739 | star-struck:🤩 1740 | face_blowing_a_kiss:😘 1741 | kissing_face:😗 1742 | smiling_face:☺ 1743 | kissing_face_with_closed_eyes:😚 1744 | kissing_face_with_smiling_eyes:😙 1745 | smiling_face_with_tear:🥲 1746 | face_savoring_food:😋 1747 | face_with_tongue:😛 1748 | winking_face_with_tongue:😜 1749 | zany_face:🤪 1750 | squinting_face_with_tongue:😝 1751 | money-mouth_face:🤑 1752 | hugging_face:🤗 1753 | face_with_hand_over_mouth:🤭 1754 | shushing_face:🤫 1755 | thinking_face:🤔 1756 | zipper-mouth_face:🤐 1757 | face_with_raised_eyebrow:🤨 1758 | expressionless_face:😑 1759 | face_without_mouth:😶 1760 | face_in_clouds:😶‍🌫️ 1761 | smirking_face:😏 1762 | unamused_face:😒 1763 | face_with_rolling_eyes:🙄 1764 | grimacing_face:😬 1765 | face_exhaling:😮‍💨 1766 | relieved_face:😌 1767 | pensive_face:😔 1768 | sleepy_face:😪 1769 | sleeping_face:😴 1770 | face_with_medical_mask:😷 1771 | face_with_thermometer:🤒 1772 | face_with_head-bandage:🤕 1773 | face_vomiting:🤮 1774 | hot_face:🥵 1775 | cold_face:🥶 1776 | woozy_face:🥴 1777 | knocked-out_face:😵 1778 | face_with_spiral_eyes:😵‍💫 1779 | exploding_head:🤯 1780 | cowboy_hat_face:🤠 1781 | partying_face:🥳 1782 | disguised_face:🥸 1783 | smiling_face_with_sunglasses:😎 1784 | nerd_face:🤓 1785 | face_with_monocle:🧐 1786 | confused_face:😕 1787 | worried_face:😟 1788 | slightly_frowning_face:🙁 1789 | frowning_face:☹ 1790 | face_with_open_mouth:😮 1791 | hushed_face:😯 1792 | astonished_face:😲 1793 | flushed_face:😳 1794 | pleading_face:🥺 1795 | frowning_face_with_open_mouth:😦 1796 | anguished_face:😧 1797 | fearful_face:😨 1798 | anxious_face_with_sweat:😰 1799 | sad_but_relieved_face:😥 1800 | crying_face:😢 1801 | loudly_crying_face:😭 1802 | face_screaming_in_fear:😱 1803 | confounded_face:😖 1804 | persevering_face:😣 1805 | disappointed_face:😞 1806 | downcast_face_with_sweat:😓 1807 | weary_face:😩 1808 | yawning_face:🥱 1809 | face_with_steam_from_nose:😤 1810 | pouting_face:😡 1811 | angry_face:😠 1812 | face_with_symbols_on_mouth:🤬 1813 | smiling_face_with_horns:😈 1814 | angry_face_with_horns:👿 1815 | skull_and_crossbones:☠ 1816 | pile_of_poo:💩 1817 | clown_face:🤡 1818 | ogre:👹 1819 | goblin:👺 1820 | alien_monster:👾 1821 | grinning_cat:😺 1822 | grinning_cat_with_smiling_eyes:😸 1823 | cat_with_tears_of_joy:😹 1824 | smiling_cat_with_heart-eyes:😻 1825 | cat_with_wry_smile:😼 1826 | weary_cat:🙀 1827 | crying_cat:😿 1828 | see-no-evil_monkey:🙈 1829 | hear-no-evil_monkey:🙉 1830 | speak-no-evil_monkey:🙊 1831 | kiss_mark:💋 1832 | heart_with_arrow:💘 1833 | heart_with_ribbon:💝 1834 | growing_heart:💗 1835 | beating_heart:💓 1836 | heart_on_fire:❤️‍🔥 1837 | mending_heart:❤️‍🩹 1838 | red_heart:❤ 1839 | orange_heart:🧡 1840 | brown_heart:🤎 1841 | white_heart:🤍 1842 | hundred_points:💯 1843 | anger_symbol:💢 1844 | collision:💥 1845 | sweat_droplets:💦 1846 | dashing_away:💨 1847 | eye_in_speech_bubble:👁️‍🗨️ 1848 | left_speech_bubble:🗨 1849 | right_anger_bubble:🗯 1850 | waving_hand:👋 1851 | hand_with_fingers_splayed:🖐 1852 | vulcan_salute:🖖 1853 | OK_hand:👌 1854 | pinched_fingers:🤌 1855 | pinching_hand:🤏 1856 | victory_hand:✌ 1857 | crossed_fingers:🤞 1858 | love-you_gesture:🤟 1859 | sign_of_the_horns:🤘 1860 | call_me_hand:🤙 1861 | backhand_index_pointing_left:👈 1862 | backhand_index_pointing_right:👉 1863 | backhand_index_pointing_up:👆 1864 | backhand_index_pointing_down:👇 1865 | index_pointing_up:☝ 1866 | thumbs_up:👍 1867 | thumbs_down:👎 1868 | raised_fist:✊ 1869 | oncoming_fist:👊 1870 | left-facing_fist:🤛 1871 | right-facing_fist:🤜 1872 | clapping_hands:👏 1873 | raising_hands:🙌 1874 | palms_up_together:🤲 1875 | folded_hands:🙏 1876 | nail_polish:💅 1877 | flexed_biceps:💪 1878 | mechanical_arm:🦾 1879 | mechanical_leg:🦿 1880 | leg:🦵 1881 | foot:🦶 1882 | ear_with_hearing_aid:🦻 1883 | brain:🧠 1884 | anatomical_heart:🫀 1885 | lungs:🫁 1886 | tooth:🦷 1887 | bone:🦴 1888 | mouth:👄 1889 | child:🧒 1890 | person:🧑 1891 | person_blond_hair:👱 1892 | person_beard:🧔 1893 | man_beard:🧔‍♂️ 1894 | woman_beard:🧔‍♀️ 1895 | man_red_hair:👨‍🦰 1896 | man_curly_hair:👨‍🦱 1897 | man_white_hair:👨‍🦳 1898 | man_bald:👨‍🦲 1899 | woman_red_hair:👩‍🦰 1900 | person_red_hair:🧑‍🦰 1901 | woman_curly_hair:👩‍🦱 1902 | person_curly_hair:🧑‍🦱 1903 | woman_white_hair:👩‍🦳 1904 | person_white_hair:🧑‍🦳 1905 | woman_bald:👩‍🦲 1906 | person_bald:🧑‍🦲 1907 | woman_blond_hair:👱‍♀️ 1908 | man_blond_hair:👱‍♂️ 1909 | older_person:🧓 1910 | old_man:👴 1911 | old_woman:👵 1912 | man_frowning:🙍‍♂️ 1913 | woman_frowning:🙍‍♀️ 1914 | person_pouting:🙎 1915 | man_pouting:🙎‍♂️ 1916 | woman_pouting:🙎‍♀️ 1917 | person_gesturing_NO:🙅 1918 | man_gesturing_NO:🙅‍♂️ 1919 | woman_gesturing_NO:🙅‍♀️ 1920 | person_gesturing_OK:🙆 1921 | man_gesturing_OK:🙆‍♂️ 1922 | woman_gesturing_OK:🙆‍♀️ 1923 | person_tipping_hand:💁 1924 | man_tipping_hand:💁‍♂️ 1925 | woman_tipping_hand:💁‍♀️ 1926 | person_raising_hand:🙋 1927 | man_raising_hand:🙋‍♂️ 1928 | woman_raising_hand:🙋‍♀️ 1929 | deaf_person:🧏 1930 | deaf_man:🧏‍♂️ 1931 | deaf_woman:🧏‍♀️ 1932 | person_bowing:🙇 1933 | man_bowing:🙇‍♂️ 1934 | woman_bowing:🙇‍♀️ 1935 | person_facepalming:🤦 1936 | man_facepalming:🤦‍♂️ 1937 | woman_facepalming:🤦‍♀️ 1938 | person_shrugging:🤷 1939 | man_shrugging:🤷‍♂️ 1940 | woman_shrugging:🤷‍♀️ 1941 | health_worker:🧑‍⚕️ 1942 | man_health_worker:👨‍⚕️ 1943 | woman_health_worker:👩‍⚕️ 1944 | student:🧑‍🎓 1945 | man_student:👨‍🎓 1946 | woman_student:👩‍🎓 1947 | teacher:🧑‍🏫 1948 | man_teacher:👨‍🏫 1949 | woman_teacher:👩‍🏫 1950 | judge:🧑‍⚖️ 1951 | man_judge:👨‍⚖️ 1952 | woman_judge:👩‍⚖️ 1953 | farmer:🧑‍🌾 1954 | man_farmer:👨‍🌾 1955 | woman_farmer:👩‍🌾 1956 | cook:🧑‍🍳 1957 | man_cook:👨‍🍳 1958 | woman_cook:👩‍🍳 1959 | mechanic:🧑‍🔧 1960 | man_mechanic:👨‍🔧 1961 | woman_mechanic:👩‍🔧 1962 | factory_worker:🧑‍🏭 1963 | man_factory_worker:👨‍🏭 1964 | woman_factory_worker:👩‍🏭 1965 | office_worker:🧑‍💼 1966 | man_office_worker:👨‍💼 1967 | woman_office_worker:👩‍💼 1968 | scientist:🧑‍🔬 1969 | man_scientist:👨‍🔬 1970 | woman_scientist:👩‍🔬 1971 | technologist:🧑‍💻 1972 | man_technologist:👨‍💻 1973 | woman_technologist:👩‍💻 1974 | singer:🧑‍🎤 1975 | man_singer:👨‍🎤 1976 | woman_singer:👩‍🎤 1977 | artist:🧑‍🎨 1978 | man_artist:👨‍🎨 1979 | woman_artist:👩‍🎨 1980 | pilot:🧑‍✈️ 1981 | man_pilot:👨‍✈️ 1982 | woman_pilot:👩‍✈️ 1983 | astronaut:🧑‍🚀 1984 | man_astronaut:👨‍🚀 1985 | woman_astronaut:👩‍🚀 1986 | firefighter:🧑‍🚒 1987 | man_firefighter:👨‍🚒 1988 | woman_firefighter:👩‍🚒 1989 | police_officer:👮 1990 | man_police_officer:👮‍♂️ 1991 | woman_police_officer:👮‍♀️ 1992 | detective:🕵 1993 | man_detective:🕵️‍♂️ 1994 | woman_detective:🕵️‍♀️ 1995 | guard:💂 1996 | man_guard:💂‍♂️ 1997 | woman_guard:💂‍♀️ 1998 | ninja:🥷 1999 | man_construction_worker:👷‍♂️ 2000 | woman_construction_worker:👷‍♀️ 2001 | person_wearing_turban:👳 2002 | man_wearing_turban:👳‍♂️ 2003 | woman_wearing_turban:👳‍♀️ 2004 | person_with_skullcap:👲 2005 | woman_with_headscarf:🧕 2006 | person_in_tuxedo:🤵 2007 | man_in_tuxedo_alt:🤵‍♂️ 2008 | woman_in_tuxedo:🤵‍♀️ 2009 | person_with_veil:👰 2010 | man_with_veil:👰‍♂️ 2011 | woman_with_veil:👰‍♀️ 2012 | breast-feeding:🤱 2013 | woman_feeding_baby:👩‍🍼 2014 | man_feeding_baby:👨‍🍼 2015 | person_feeding_baby:🧑‍🍼 2016 | baby_angel:👼 2017 | Santa_Claus:🎅 2018 | Mrs._Claus:🤶 2019 | mx_claus:🧑‍🎄 2020 | superhero:🦸 2021 | man_superhero:🦸‍♂️ 2022 | woman_superhero:🦸‍♀️ 2023 | supervillain:🦹 2024 | man_supervillain:🦹‍♂️ 2025 | woman_supervillain:🦹‍♀️ 2026 | mage:🧙 2027 | man_mage:🧙‍♂️ 2028 | woman_mage:🧙‍♀️ 2029 | fairy:🧚 2030 | man_fairy:🧚‍♂️ 2031 | woman_fairy:🧚‍♀️ 2032 | vampire:🧛 2033 | man_vampire:🧛‍♂️ 2034 | woman_vampire:🧛‍♀️ 2035 | merperson:🧜 2036 | merman:🧜‍♂️ 2037 | mermaid:🧜‍♀️ 2038 | elf:🧝 2039 | man_elf:🧝‍♂️ 2040 | woman_elf:🧝‍♀️ 2041 | genie:🧞 2042 | man_genie:🧞‍♂️ 2043 | woman_genie:🧞‍♀️ 2044 | zombie:🧟 2045 | man_zombie:🧟‍♂️ 2046 | woman_zombie:🧟‍♀️ 2047 | person_getting_massage:💆 2048 | man_getting_massage:💆‍♂️ 2049 | woman_getting_massage:💆‍♀️ 2050 | person_getting_haircut:💇 2051 | man_getting_haircut:💇‍♂️ 2052 | woman_getting_haircut:💇‍♀️ 2053 | person_walking:🚶 2054 | man_walking:🚶‍♂️ 2055 | woman_walking:🚶‍♀️ 2056 | person_standing:🧍 2057 | man_standing:🧍‍♂️ 2058 | woman_standing:🧍‍♀️ 2059 | person_kneeling:🧎 2060 | man_kneeling:🧎‍♂️ 2061 | woman_kneeling:🧎‍♀️ 2062 | person_with_white_cane:🧑‍🦯 2063 | man_with_white_cane:👨‍🦯 2064 | woman_with_white_cane:👩‍🦯 2065 | person_in_motorized_wheelchair:🧑‍🦼 2066 | man_in_motorized_wheelchair:👨‍🦼 2067 | woman_in_motorized_wheelchair:👩‍🦼 2068 | person_in_manual_wheelchair:🧑‍🦽 2069 | man_in_manual_wheelchair:👨‍🦽 2070 | woman_in_manual_wheelchair:👩‍🦽 2071 | person_running:🏃 2072 | man_running:🏃‍♂️ 2073 | woman_running:🏃‍♀️ 2074 | woman_dancing:💃 2075 | person_in_suit_levitating:🕴 2076 | people_with_bunny_ears:👯 2077 | men_with_bunny_ears:👯‍♂️ 2078 | women_with_bunny_ears:👯‍♀️ 2079 | person_in_steamy_room:🧖 2080 | man_in_steamy_room:🧖‍♂️ 2081 | woman_in_steamy_room:🧖‍♀️ 2082 | person_climbing:🧗 2083 | man_climbing:🧗‍♂️ 2084 | woman_climbing:🧗‍♀️ 2085 | person_fencing:🤺 2086 | person_golfing:🏌 2087 | man_golfing:🏌️‍♂️ 2088 | woman_golfing:🏌️‍♀️ 2089 | person_surfing:🏄 2090 | man_surfing:🏄‍♂️ 2091 | woman_surfing:🏄‍♀️ 2092 | person_rowing_boat:🚣 2093 | man_rowing_boat:🚣‍♂️ 2094 | woman_rowing_boat:🚣‍♀️ 2095 | person_swimming:🏊 2096 | man_swimming:🏊‍♂️ 2097 | woman_swimming:🏊‍♀️ 2098 | person_bouncing_ball:⛹ 2099 | man_bouncing_ball:⛹️‍♂️ 2100 | woman_bouncing_ball:⛹️‍♀️ 2101 | person_lifting_weights:🏋 2102 | man_lifting_weights:🏋️‍♂️ 2103 | woman_lifting_weights:🏋️‍♀️ 2104 | person_biking:🚴 2105 | man_biking:🚴‍♂️ 2106 | woman_biking:🚴‍♀️ 2107 | person_mountain_biking:🚵 2108 | man_mountain_biking:🚵‍♂️ 2109 | woman_mountain_biking:🚵‍♀️ 2110 | person_cartwheeling:🤸 2111 | man_cartwheeling:🤸‍♂️ 2112 | woman_cartwheeling:🤸‍♀️ 2113 | people_wrestling:🤼 2114 | men_wrestling:🤼‍♂️ 2115 | women_wrestling:🤼‍♀️ 2116 | person_playing_water_polo:🤽 2117 | man_playing_water_polo:🤽‍♂️ 2118 | woman_playing_water_polo:🤽‍♀️ 2119 | person_playing_handball:🤾 2120 | man_playing_handball:🤾‍♂️ 2121 | woman_playing_handball:🤾‍♀️ 2122 | person_juggling:🤹 2123 | man_juggling:🤹‍♂️ 2124 | woman_juggling:🤹‍♀️ 2125 | person_in_lotus_position:🧘 2126 | man_in_lotus_position:🧘‍♂️ 2127 | woman_in_lotus_position:🧘‍♀️ 2128 | person_taking_bath:🛀 2129 | person_in_bed:🛌 2130 | people_holding_hands:🧑‍🤝‍🧑 2131 | women_holding_hands:👭 2132 | woman_and_man_holding_hands:👫 2133 | men_holding_hands:👬 2134 | kiss_alt:💏 2135 | kiss_woman,_man:👩‍❤️‍💋‍👨 2136 | kiss_man,_man:👨‍❤️‍💋‍👨 2137 | kiss_woman,_woman:👩‍❤️‍💋‍👩 2138 | couple_with_heart_woman,_man:👩‍❤️‍👨 2139 | couple_with_heart_man,_man:👨‍❤️‍👨 2140 | couple_with_heart_woman,_woman:👩‍❤️‍👩 2141 | family_man,_woman,_boy:👨‍👩‍👦 2142 | family_man,_woman,_girl:👨‍👩‍👧 2143 | family_man,_woman,_girl,_boy:👨‍👩‍👧‍👦 2144 | family_man,_woman,_boy,_boy:👨‍👩‍👦‍👦 2145 | family_man,_woman,_girl,_girl:👨‍👩‍👧‍👧 2146 | family_man,_man,_boy:👨‍👨‍👦 2147 | family_man,_man,_girl:👨‍👨‍👧 2148 | family_man,_man,_girl,_boy:👨‍👨‍👧‍👦 2149 | family_man,_man,_boy,_boy:👨‍👨‍👦‍👦 2150 | family_man,_man,_girl,_girl:👨‍👨‍👧‍👧 2151 | family_woman,_woman,_boy:👩‍👩‍👦 2152 | family_woman,_woman,_girl:👩‍👩‍👧 2153 | family_woman,_woman,_girl,_boy:👩‍👩‍👧‍👦 2154 | family_woman,_woman,_boy,_boy:👩‍👩‍👦‍👦 2155 | family_woman,_woman,_girl,_girl:👩‍👩‍👧‍👧 2156 | family_man,_boy:👨‍👦 2157 | family_man,_boy,_boy:👨‍👦‍👦 2158 | family_man,_girl:👨‍👧 2159 | family_man,_girl,_boy:👨‍👧‍👦 2160 | family_man,_girl,_girl:👨‍👧‍👧 2161 | family_woman,_boy:👩‍👦 2162 | family_woman,_boy,_boy:👩‍👦‍👦 2163 | family_woman,_girl:👩‍👧 2164 | family_woman,_girl,_boy:👩‍👧‍👦 2165 | family_woman,_girl,_girl:👩‍👧‍👧 2166 | people_hugging:🫂 2167 | red_hair:🦰 2168 | curly_hair:🦱 2169 | white_hair:🦳 2170 | bald:🦲 2171 | orangutan:🦧 2172 | dog_face:🐶 2173 | dog_alt:🐕 2174 | guide_dog:🦮 2175 | service_dog:🐕‍🦺 2176 | raccoon:🦝 2177 | cat_face:🐱 2178 | cat_alt:🐈 2179 | black_cat:🐈‍⬛ 2180 | lion:🦁 2181 | tiger_face:🐯 2182 | tiger_alt:🐅 2183 | horse_face:🐴 2184 | horse_alt:🐎 2185 | zebra:🦓 2186 | bison:🦬 2187 | cow_face:🐮 2188 | cow_alt:🐄 2189 | pig_face:🐷 2190 | pig_alt:🐖 2191 | ewe:🐑 2192 | camel_alt:🐪 2193 | two-hump_camel:🐫 2194 | llama:🦙 2195 | giraffe:🦒 2196 | mammoth:🦣 2197 | rhinoceros:🦏 2198 | hippopotamus:🦛 2199 | mouse_face:🐭 2200 | mouse_alt:🐁 2201 | rabbit_face:🐰 2202 | rabbit_alt:🐇 2203 | beaver:🦫 2204 | hedgehog:🦔 2205 | polar_bear:🐻‍❄️ 2206 | panda:🐼 2207 | sloth:🦥 2208 | otter:🦦 2209 | skunk:🦨 2210 | kangaroo:🦘 2211 | badger:🦡 2212 | paw_prints:🐾 2213 | front-facing_baby_chick:🐥 2214 | swan:🦢 2215 | dodo:🦤 2216 | feather:🪶 2217 | flamingo:🦩 2218 | peacock:🦚 2219 | parrot:🦜 2220 | sauropod:🦕 2221 | T-Rex:🦖 2222 | spouting_whale:🐳 2223 | whale_alt:🐋 2224 | seal:🦭 2225 | spiral_shell:🐚 2226 | honeybee:🐝 2227 | beetle_alt:🪲 2228 | lady_beetle:🐞 2229 | cricket_alt:🦗 2230 | cockroach:🪳 2231 | mosquito:🦟 2232 | fly:🪰 2233 | worm:🪱 2234 | microbe:🦠 2235 | wilted_flower:🥀 2236 | potted_plant:🪴 2237 | sheaf_of_rice:🌾 2238 | leaf_fluttering_in_wind:🍃 2239 | mango:🥭 2240 | red_apple:🍎 2241 | blueberries:🫐 2242 | kiwi_fruit:🥝 2243 | olive:🫒 2244 | coconut:🥥 2245 | ear_of_corn:🌽 2246 | bell_pepper:🫑 2247 | leafy_green:🥬 2248 | broccoli:🥦 2249 | garlic:🧄 2250 | onion:🧅 2251 | baguette_bread:🥖 2252 | flatbread:🫓 2253 | pretzel:🥨 2254 | bagel:🥯 2255 | waffle:🧇 2256 | cheese_wedge:🧀 2257 | cut_of_meat:🥩 2258 | french_fries:🍟 2259 | hot_dog:🌭 2260 | sandwich:🥪 2261 | tamale:🫔 2262 | falafel:🧆 2263 | pot_of_food:🍲 2264 | fondue:🫕 2265 | bowl_with_spoon:🥣 2266 | green_salad:🥗 2267 | butter:🧈 2268 | salt:🧂 2269 | canned_food:🥫 2270 | bento_box:🍱 2271 | cooked_rice:🍚 2272 | curry_rice:🍛 2273 | steaming_bowl:🍜 2274 | roasted_sweet_potato:🍠 2275 | fish_cake_with_swirl:🍥 2276 | moon_cake:🥮 2277 | dumpling:🥟 2278 | fortune_cookie:🥠 2279 | takeout_box:🥡 2280 | lobster:🦞 2281 | oyster:🦪 2282 | soft_ice_cream:🍦 2283 | birthday_cake:🎂 2284 | shortcake:🍰 2285 | cupcake:🧁 2286 | pie:🥧 2287 | glass_of_milk:🥛 2288 | hot_beverage:☕ 2289 | teapot:🫖 2290 | teacup_without_handle:🍵 2291 | bottle_with_popping_cork:🍾 2292 | cocktail_glass:🍸 2293 | beer_mug:🍺 2294 | clinking_beer_mugs:🍻 2295 | clinking_glasses:🥂 2296 | cup_with_straw:🥤 2297 | bubble_tea:🧋 2298 | beverage_box:🧃 2299 | mate:🧉 2300 | ice:🧊 2301 | chopsticks:🥢 2302 | fork_and_knife_with_plate:🍽 2303 | kitchen_knife:🔪 2304 | globe_showing_Europe-Africa:🌍 2305 | globe_showing_Americas:🌎 2306 | globe_showing_Asia-Australia:🌏 2307 | world_map:🗺 2308 | map_of_Japan:🗾 2309 | compass:🧭 2310 | snow-capped_mountain:🏔 2311 | beach_with_umbrella:🏖 2312 | desert_island:🏝 2313 | national_park:🏞 2314 | building_construction:🏗 2315 | brick:🧱 2316 | rock:🪨 2317 | wood:🪵 2318 | hut:🛖 2319 | houses:🏘 2320 | derelict_house:🏚 2321 | office_building:🏢 2322 | Japanese_post_office:🏣 2323 | post_office_alt:🏤 2324 | Japanese_castle:🏯 2325 | castle:🏰 2326 | Tokyo_tower:🗼 2327 | Statue_of_Liberty:🗽 2328 | hindu_temple:🛕 2329 | cityscape_at_dusk:🌆 2330 | sunset:🌇 2331 | hot_springs:♨ 2332 | barber_pole:💈 2333 | locomotive:🚂 2334 | high-speed_train:🚄 2335 | bullet_train:🚅 2336 | train_alt:🚆 2337 | tram_car:🚋 2338 | automobile:🚗 2339 | sport_utility_vehicle:🚙 2340 | pickup_truck:🛻 2341 | delivery_truck:🚚 2342 | racing_car:🏎 2343 | manual_wheelchair:🦽 2344 | motorized_wheelchair:🦼 2345 | auto_rickshaw:🛺 2346 | bicycle:🚲 2347 | kick_scooter:🛴 2348 | skateboard:🛹 2349 | roller_skate:🛼 2350 | bus_stop:🚏 2351 | oil_drum:🛢 2352 | fuel_pump:⛽ 2353 | police_car_light:🚨 2354 | horizontal_traffic_light:🚥 2355 | stop_sign:🛑 2356 | passenger_ship:🛳 2357 | motor_boat:🛥 2358 | small_airplane:🛩 2359 | airplane_arrival:🛬 2360 | parachute:🪂 2361 | satellite_alt:🛰 2362 | flying_saucer:🛸 2363 | bellhop_bell:🛎 2364 | luggage:🧳 2365 | hourglass_done:⌛ 2366 | hourglass_not_done:⏳ 2367 | timer_clock:⏲ 2368 | mantelpiece_clock:🕰 2369 | twelve_o’clock:🕛 2370 | twelve-thirty:🕧 2371 | one_o’clock:🕐 2372 | one-thirty:🕜 2373 | two_o’clock:🕑 2374 | two-thirty:🕝 2375 | three_o’clock:🕒 2376 | three-thirty:🕞 2377 | four_o’clock:🕓 2378 | four-thirty:🕟 2379 | five_o’clock:🕔 2380 | five-thirty:🕠 2381 | six_o’clock:🕕 2382 | six-thirty:🕡 2383 | seven_o’clock:🕖 2384 | seven-thirty:🕢 2385 | eight_o’clock:🕗 2386 | eight-thirty:🕣 2387 | nine_o’clock:🕘 2388 | nine-thirty:🕤 2389 | ten_o’clock:🕙 2390 | ten-thirty:🕥 2391 | eleven_o’clock:🕚 2392 | eleven-thirty:🕦 2393 | new_moon_face:🌚 2394 | first_quarter_moon_face:🌛 2395 | last_quarter_moon_face:🌜 2396 | sun:☀ 2397 | full_moon_face:🌝 2398 | ringed_planet:🪐 2399 | glowing_star:🌟 2400 | shooting_star:🌠 2401 | sun_behind_cloud:⛅ 2402 | cloud_with_lightning_and_rain:⛈ 2403 | sun_behind_small_cloud:🌤 2404 | sun_behind_large_cloud:🌥 2405 | sun_behind_rain_cloud:🌦 2406 | cloud_with_rain:🌧 2407 | cloud_with_snow:🌨 2408 | cloud_with_lightning:🌩 2409 | tornado:🌪 2410 | wind_face:🌬 2411 | umbrella_alt:☂ 2412 | umbrella_with_rain_drops:☔ 2413 | umbrella_on_ground:⛱ 2414 | high_voltage:⚡ 2415 | snowman_alt:☃ 2416 | snowman_without_snow:⛄ 2417 | water_wave:🌊 2418 | jack-o-lantern:🎃 2419 | Christmas_tree:🎄 2420 | firecracker:🧨 2421 | party_popper:🎉 2422 | pine_decoration:🎍 2423 | Japanese_dolls:🎎 2424 | carp_streamer:🎏 2425 | moon_viewing_ceremony:🎑 2426 | red_envelope:🧧 2427 | wrapped_gift:🎁 2428 | admission_tickets:🎟 2429 | sports_medal:🏅 2430 | 1st_place_medal:🥇 2431 | 2nd_place_medal:🥈 2432 | 3rd_place_medal:🥉 2433 | soccer_ball:⚽ 2434 | softball:🥎 2435 | american_football:🏈 2436 | flying_disc:🥏 2437 | cricket_game:🏏 2438 | ice_hockey:🏒 2439 | lacrosse:🥍 2440 | goal_net:🥅 2441 | flag_in_hole:⛳ 2442 | fishing_pole:🎣 2443 | diving_mask:🤿 2444 | running_shirt:🎽 2445 | skis:🎿 2446 | sled:🛷 2447 | curling_stone:🥌 2448 | bullseye:🎯 2449 | yo-yo:🪀 2450 | kite:🪁 2451 | pool_8_ball:🎱 2452 | magic_wand:🪄 2453 | nazar_amulet:🧿 2454 | puzzle_piece:🧩 2455 | teddy_bear:🧸 2456 | piñata:🪅 2457 | nesting_dolls:🪆 2458 | spade_suit:♠ 2459 | heart_suit:♥ 2460 | diamond_suit:♦ 2461 | club_suit:♣ 2462 | chess_pawn:♟ 2463 | joker:🃏 2464 | mahjong_red_dragon:🀄 2465 | framed_picture:🖼 2466 | artist_palette:🎨 2467 | thread:🧵 2468 | sewing_needle:🪡 2469 | yarn:🧶 2470 | knot:🪢 2471 | glasses:👓 2472 | sunglasses_alt:🕶 2473 | goggles:🥽 2474 | lab_coat:🥼 2475 | safety_vest:🦺 2476 | t-shirt:👕 2477 | scarf:🧣 2478 | gloves:🧤 2479 | coat:🧥 2480 | socks:🧦 2481 | sari:🥻 2482 | one-piece_swimsuit:🩱 2483 | briefs:🩲 2484 | shorts:🩳 2485 | woman’s_clothes:👚 2486 | clutch_bag:👝 2487 | backpack:🎒 2488 | thong_sandal:🩴 2489 | man’s_shoe:👞 2490 | running_shoe:👟 2491 | hiking_boot:🥾 2492 | flat_shoe:🥿 2493 | high-heeled_shoe:👠 2494 | woman’s_sandal:👡 2495 | ballet_shoes:🩰 2496 | woman’s_boot:👢 2497 | woman’s_hat:👒 2498 | top_hat:🎩 2499 | graduation_cap:🎓 2500 | billed_cap:🧢 2501 | military_helmet:🪖 2502 | rescue_worker’s_helmet:⛑ 2503 | gem_stone:💎 2504 | muted_speaker:🔇 2505 | speaker_low_volume:🔈 2506 | speaker_medium_volume:🔉 2507 | speaker_high_volume:🔊 2508 | megaphone:📣 2509 | bell_with_slash:🔕 2510 | musical_notes:🎶 2511 | studio_microphone:🎙 2512 | headphone:🎧 2513 | accordion:🪗 2514 | banjo:🪕 2515 | long_drum:🪘 2516 | mobile_phone:📱 2517 | mobile_phone_with_arrow:📲 2518 | fax_machine:📠 2519 | laptop:💻 2520 | desktop_computer:🖥 2521 | computer_mouse:🖱 2522 | computer_disk:💽 2523 | optical_disk:💿 2524 | abacus:🧮 2525 | film_projector:📽 2526 | clapper_board:🎬 2527 | television:📺 2528 | videocassette:📼 2529 | magnifying_glass_tilted_left:🔍 2530 | magnifying_glass_tilted_right:🔎 2531 | light_bulb:💡 2532 | red_paper_lantern:🏮 2533 | diya_lamp:🪔 2534 | open_book:📖 2535 | rolled-up_newspaper:🗞 2536 | money_bag:💰 2537 | coin:🪙 2538 | yen_banknote:💴 2539 | dollar_banknote:💵 2540 | euro_banknote:💶 2541 | pound_banknote:💷 2542 | receipt:🧾 2543 | chart_increasing_with_yen:💹 2544 | closed_mailbox_with_raised_flag:📫 2545 | closed_mailbox_with_lowered_flag:📪 2546 | open_mailbox_with_raised_flag:📬 2547 | open_mailbox_with_lowered_flag:📭 2548 | ballot_box_with_ballot:🗳 2549 | pencil_alt:✏ 2550 | fountain_pen:🖋 2551 | pen:🖊 2552 | memo:📝 2553 | card_index_dividers:🗂 2554 | calendar_alt:📅 2555 | tear-off_calendar:📆 2556 | spiral_notepad:🗒 2557 | spiral_calendar:🗓 2558 | chart_increasing:📈 2559 | chart_decreasing:📉 2560 | linked_paperclips:🖇 2561 | card_file_box:🗃 2562 | locked:🔒 2563 | unlocked:🔓 2564 | locked_with_pen:🔏 2565 | locked_with_key:🔐 2566 | old_key:🗝 2567 | axe:🪓 2568 | hammer_and_pick:⚒ 2569 | hammer_and_wrench:🛠 2570 | water_pistol:🔫 2571 | boomerang:🪃 2572 | carpentry_saw:🪚 2573 | screwdriver:🪛 2574 | clamp:🗜 2575 | balance_scale:⚖ 2576 | white_cane:🦯 2577 | hook:🪝 2578 | toolbox:🧰 2579 | magnet:🧲 2580 | ladder:🪜 2581 | test_tube:🧪 2582 | petri_dish:🧫 2583 | dna:🧬 2584 | satellite_antenna:📡 2585 | drop_of_blood:🩸 2586 | adhesive_bandage:🩹 2587 | stethoscope:🩺 2588 | elevator:🛗 2589 | mirror:🪞 2590 | window:🪟 2591 | couch_and_lamp:🛋 2592 | chair:🪑 2593 | plunger:🪠 2594 | mouse_trap:🪤 2595 | razor:🪒 2596 | lotion_bottle:🧴 2597 | safety_pin:🧷 2598 | broom:🧹 2599 | basket:🧺 2600 | roll_of_paper:🧻 2601 | bucket:🪣 2602 | soap:🧼 2603 | toothbrush:🪥 2604 | sponge:🧽 2605 | fire_extinguisher:🧯 2606 | cigarette:🚬 2607 | headstone:🪦 2608 | funeral_urn:⚱ 2609 | moai:🗿 2610 | placard:🪧 2611 | ATM_sign:🏧 2612 | litter_in_bin_sign:🚮 2613 | wheelchair_symbol:♿ 2614 | men’s_room:🚹 2615 | women’s_room:🚺 2616 | water_closet:🚾 2617 | prohibited:🚫 2618 | no_littering:🚯 2619 | no_one_under_eighteen:🔞 2620 | up_arrow:⬆ 2621 | up-right_arrow:↗ 2622 | right_arrow:➡ 2623 | down-right_arrow:↘down_arrow 2624 | down-left_arrow:↙ 2625 | left_arrow:⬅ 2626 | up-left_arrow:↖ 2627 | up-down_arrow:↕ 2628 | left-right_arrow:↔ 2629 | right_arrow_curving_left:↩ 2630 | left_arrow_curving_right:↪ 2631 | right_arrow_curving_up:⤴ 2632 | right_arrow_curving_down:⤵ 2633 | clockwise_vertical_arrows:🔃 2634 | counterclockwise_arrows_button:🔄 2635 | BACK_arrow:🔙 2636 | END_arrow:🔚 2637 | ON!_arrow:🔛 2638 | SOON_arrow:🔜 2639 | TOP_arrow:🔝 2640 | atom_symbol:⚛ 2641 | om:🕉 2642 | star_of_David:✡ 2643 | latin_cross:✝ 2644 | peace_symbol:☮ 2645 | dotted_six-pointed_star:🔯 2646 | Aries:♈ 2647 | Taurus:♉ 2648 | Gemini:♊ 2649 | Cancer:♋ 2650 | Leo:♌ 2651 | Virgo:♍ 2652 | Libra:♎ 2653 | Scorpio:♏ 2654 | Sagittarius:♐ 2655 | Capricorn:♑ 2656 | Aquarius:♒ 2657 | Pisces:♓ 2658 | Ophiuchus:⛎ 2659 | shuffle_tracks_button:🔀 2660 | repeat_button:🔁 2661 | repeat_single_button:🔂 2662 | play_button:▶ 2663 | fast-forward_button:⏩ 2664 | next_track_button:⏭ 2665 | play_or_pause_button:⏯ 2666 | reverse_button:◀ 2667 | fast_reverse_button:⏪ 2668 | last_track_button:⏮ 2669 | upwards_button:🔼 2670 | fast_up_button:⏫ 2671 | downwards_button:🔽 2672 | fast_down_button:⏬ 2673 | eject_button:⏏ 2674 | dim_button:🔅 2675 | bright_button:🔆 2676 | antenna_bars:📶 2677 | female_sign:♀ 2678 | male_sign:♂ 2679 | transgender_symbol:⚧ 2680 | multiply:✖ 2681 | plus:➕ 2682 | minus:➖ 2683 | divide:➗ 2684 | infinity:♾ 2685 | double_exclamation_mark:‼ 2686 | exclamation_question_mark:⁉ 2687 | red_question_mark:❓ 2688 | white_question_mark:❔ 2689 | white_exclamation_mark:❕ 2690 | red_exclamation_mark:❗ 2691 | medical_symbol:⚕ 2692 | recycling_symbol:♻ 2693 | trident_emblem:🔱 2694 | Japanese_symbol_for_beginner:🔰 2695 | hollow_red_circle:⭕ 2696 | check_mark_button:✅ 2697 | check_box_with_check:☑ 2698 | check_mark:✔ 2699 | cross_mark:❌ 2700 | cross_mark_button:❎ 2701 | double_curly_loop:➿ 2702 | eight-spoked_asterisk:✳ 2703 | eight-pointed_star:✴ 2704 | trade_mark:™ 2705 | keycap_#:#️⃣ 2706 | keycap_*:*️⃣ 2707 | keycap_0:0️⃣ 2708 | keycap_1:1️⃣ 2709 | keycap_2:2️⃣ 2710 | keycap_3:3️⃣ 2711 | keycap_4:4️⃣ 2712 | keycap_5:5️⃣ 2713 | keycap_6:6️⃣ 2714 | keycap_7:7️⃣ 2715 | keycap_8:8️⃣ 2716 | keycap_9:9️⃣ 2717 | keycap_10:🔟 2718 | input_latin_uppercase:🔠 2719 | input_latin_lowercase:🔡 2720 | input_numbers:🔢 2721 | input_symbols:🔣 2722 | input_latin_letters:🔤 2723 | A_button_(blood_type):🅰 2724 | AB_button_(blood_type):🆎 2725 | B_button_(blood_type):🅱 2726 | CL_button:🆑 2727 | COOL_button:🆒 2728 | FREE_button:🆓 2729 | information:ℹ 2730 | ID_button:🆔 2731 | circled_M:Ⓜ 2732 | NEW_button:🆕 2733 | NG_button:🆖 2734 | O_button_(blood_type):🅾 2735 | OK_button:🆗 2736 | P_button:🅿 2737 | SOS_button:🆘 2738 | UP!_button:🆙 2739 | VS_button:🆚 2740 | Japanese_“here”_button:🈁 2741 | Japanese_“service_charge”_button:🈂 2742 | Japanese_“monthly_amount”_button:🈷 2743 | Japanese_“not_free_of_charge”_button:🈶 2744 | Japanese_“reserved”_button:🈯 2745 | Japanese_“bargain”_button:🉐 2746 | Japanese_“discount”_button:🈹 2747 | Japanese_“free_of_charge”_button:🈚 2748 | Japanese_“prohibited”_button:🈲 2749 | Japanese_“acceptable”_button:🉑 2750 | Japanese_“application”_button:🈸 2751 | Japanese_“passing_grade”_button:🈴 2752 | Japanese_“vacancy”_button:🈳 2753 | Japanese_“congratulations”_button:㊗ 2754 | Japanese_“secret”_button:㊙ 2755 | Japanese_“open_for_business”_button:🈺 2756 | Japanese_“no_vacancy”_button:🈵 2757 | orange_circle:🟠 2758 | yellow_circle:🟡 2759 | green_circle:🟢 2760 | blue_circle:🔵 2761 | purple_circle:🟣 2762 | brown_circle:🟤 2763 | red_square:🟥 2764 | orange_square:🟧 2765 | yellow_square:🟨 2766 | green_square:🟩 2767 | blue_square:🟦 2768 | purple_square:🟪 2769 | brown_square:🟫 2770 | black_medium-small_square:◾ 2771 | white_medium-small_square:◽ 2772 | red_triangle_pointed_up:🔺 2773 | red_triangle_pointed_down:🔻 2774 | diamond_with_a_dot:💠 2775 | chequered_flag:🏁 2776 | triangular_flag:🚩 2777 | black_flag:🏴 2778 | white_flag:🏳 2779 | rainbow_flag:🏳️‍🌈 2780 | transgender_flag:🏳️‍⚧️ 2781 | pirate_flag:🏴‍☠️ 2782 | flag_Ascension_Island:🇦🇨 2783 | flag_Andorra:🇦🇩 2784 | flag_United_Arab_Emirates:🇦🇪 2785 | flag_Afghanistan:🇦🇫 2786 | flag_Antigua_&_Barbuda:🇦🇬 2787 | flag_Anguilla:🇦🇮 2788 | flag_Albania:🇦🇱 2789 | flag_Armenia:🇦🇲 2790 | flag_Angola:🇦🇴 2791 | flag_Antarctica:🇦🇶 2792 | flag_Argentina:🇦🇷 2793 | flag_American_Samoa:🇦🇸 2794 | flag_Austria:🇦🇹 2795 | flag_Australia:🇦🇺 2796 | flag_Aruba:🇦🇼 2797 | flag_Åland_Islands:🇦🇽 2798 | flag_Azerbaijan:🇦🇿 2799 | flag_Bosnia_&_Herzegovina:🇧🇦 2800 | flag_Barbados:🇧🇧 2801 | flag_Bangladesh:🇧🇩 2802 | flag_Belgium:🇧🇪 2803 | flag_Burkina_Faso:🇧🇫 2804 | flag_Bulgaria:🇧🇬 2805 | flag_Bahrain:🇧🇭 2806 | flag_Burundi:🇧🇮 2807 | flag_Benin:🇧🇯 2808 | flag_St._Barthélemy:🇧🇱 2809 | flag_Bermuda:🇧🇲 2810 | flag_Brunei:🇧🇳 2811 | flag_Bolivia:🇧🇴 2812 | flag_Caribbean_Netherlands:🇧🇶 2813 | flag_Brazil:🇧🇷 2814 | flag_Bahamas:🇧🇸 2815 | flag_Bhutan:🇧🇹 2816 | flag_Bouvet_Island:🇧🇻 2817 | flag_Botswana:🇧🇼 2818 | flag_Belarus:🇧🇾 2819 | flag_Belize:🇧🇿 2820 | flag_Canada:🇨🇦 2821 | flag_Cocos_(Keeling)_Islands:🇨🇨 2822 | flag_Congo_-_Kinshasa:🇨🇩 2823 | flag_Central_African_Republic:🇨🇫 2824 | flag_Congo_-_Brazzaville:🇨🇬 2825 | flag_Switzerland:🇨🇭 2826 | flag_Côte_d’Ivoire:🇨🇮 2827 | flag_Cook_Islands:🇨🇰 2828 | flag_Chile:🇨🇱 2829 | flag_Cameroon:🇨🇲 2830 | flag_China:🇨🇳 2831 | flag_Colombia:🇨🇴 2832 | flag_Clipperton_Island:🇨🇵 2833 | flag_Costa_Rica:🇨🇷 2834 | flag_Cuba:🇨🇺 2835 | flag_Cape_Verde:🇨🇻 2836 | flag_Curaçao:🇨🇼 2837 | flag_Christmas_Island:🇨🇽 2838 | flag_Cyprus:🇨🇾 2839 | flag_Czechia:🇨🇿 2840 | flag_Germany:🇩🇪 2841 | flag_Diego_Garcia:🇩🇬 2842 | flag_Djibouti:🇩🇯 2843 | flag_Denmark:🇩🇰 2844 | flag_Dominica:🇩🇲 2845 | flag_Dominican_Republic:🇩🇴 2846 | flag_Algeria:🇩🇿 2847 | flag_Ceuta_&_Melilla:🇪🇦 2848 | flag_Ecuador:🇪🇨 2849 | flag_Estonia:🇪🇪 2850 | flag_Egypt:🇪🇬 2851 | flag_Western_Sahara:🇪🇭 2852 | flag_Eritrea:🇪🇷 2853 | flag_Spain:🇪🇸 2854 | flag_Ethiopia:🇪🇹 2855 | flag_European_Union:🇪🇺 2856 | flag_Finland:🇫🇮 2857 | flag_Fiji:🇫🇯 2858 | flag_Falkland_Islands:🇫🇰 2859 | flag_Micronesia:🇫🇲 2860 | flag_Faroe_Islands:🇫🇴 2861 | flag_France:🇫🇷 2862 | flag_Gabon:🇬🇦 2863 | flag_United_Kingdom:🇬🇧 2864 | flag_Grenada:🇬🇩 2865 | flag_Georgia:🇬🇪 2866 | flag_French_Guiana:🇬🇫 2867 | flag_Guernsey:🇬🇬 2868 | flag_Ghana:🇬🇭 2869 | flag_Gibraltar:🇬🇮 2870 | flag_Greenland:🇬🇱 2871 | flag_Gambia:🇬🇲 2872 | flag_Guinea:🇬🇳 2873 | flag_Guadeloupe:🇬🇵 2874 | flag_Equatorial_Guinea:🇬🇶 2875 | flag_Greece:🇬🇷 2876 | flag_South_Georgia_&_South_Sandwich_Islands:🇬🇸 2877 | flag_Guatemala:🇬🇹 2878 | flag_Guam:🇬🇺 2879 | flag_Guinea-Bissau:🇬🇼 2880 | flag_Guyana:🇬🇾 2881 | flag_Hong_Kong_SAR_China:🇭🇰 2882 | flag_Heard_&_McDonald_Islands:🇭🇲 2883 | flag_Honduras:🇭🇳 2884 | flag_Croatia:🇭🇷 2885 | flag_Haiti:🇭🇹 2886 | flag_Hungary:🇭🇺 2887 | flag_Canary_Islands:🇮🇨 2888 | flag_Indonesia:🇮🇩 2889 | flag_Ireland:🇮🇪 2890 | flag_Israel:🇮🇱 2891 | flag_Isle_of_Man:🇮🇲 2892 | flag_India:🇮🇳 2893 | flag_British_Indian_Ocean_Territory:🇮🇴 2894 | flag_Iraq:🇮🇶 2895 | flag_Iran:🇮🇷 2896 | flag_Iceland:🇮🇸 2897 | flag_Italy:🇮🇹 2898 | flag_Jersey:🇯🇪 2899 | flag_Jamaica:🇯🇲 2900 | flag_Jordan:🇯🇴 2901 | flag_Japan:🇯🇵 2902 | flag_Kenya:🇰🇪 2903 | flag_Kyrgyzstan:🇰🇬 2904 | flag_Cambodia:🇰🇭 2905 | flag_Kiribati:🇰🇮 2906 | flag_Comoros:🇰🇲 2907 | flag_St._Kitts_&_Nevis:🇰🇳 2908 | flag_North_Korea:🇰🇵 2909 | flag_South_Korea:🇰🇷 2910 | flag_Kuwait:🇰🇼 2911 | flag_Cayman_Islands:🇰🇾 2912 | flag_Kazakhstan:🇰🇿 2913 | flag_Laos:🇱🇦 2914 | flag_Lebanon:🇱🇧 2915 | flag_St._Lucia:🇱🇨 2916 | flag_Liechtenstein:🇱🇮 2917 | flag_Sri_Lanka:🇱🇰 2918 | flag_Liberia:🇱🇷 2919 | flag_Lesotho:🇱🇸 2920 | flag_Lithuania:🇱🇹 2921 | flag_Luxembourg:🇱🇺 2922 | flag_Latvia:🇱🇻 2923 | flag_Libya:🇱🇾 2924 | flag_Morocco:🇲🇦 2925 | flag_Monaco:🇲🇨 2926 | flag_Moldova:🇲🇩 2927 | flag_Montenegro:🇲🇪 2928 | flag_St._Martin:🇲🇫 2929 | flag_Madagascar:🇲🇬 2930 | flag_Marshall_Islands:🇲🇭 2931 | flag_North_Macedonia:🇲🇰 2932 | flag_Mali:🇲🇱 2933 | flag_Myanmar_(Burma):🇲🇲 2934 | flag_Mongolia:🇲🇳 2935 | flag_Macao_SAR_China:🇲🇴 2936 | flag_Northern_Mariana_Islands:🇲🇵 2937 | flag_Martinique:🇲🇶 2938 | flag_Mauritania:🇲🇷 2939 | flag_Montserrat:🇲🇸 2940 | flag_Malta:🇲🇹 2941 | flag_Mauritius:🇲🇺 2942 | flag_Maldives:🇲🇻 2943 | flag_Malawi:🇲🇼 2944 | flag_Mexico:🇲🇽 2945 | flag_Malaysia:🇲🇾 2946 | flag_Mozambique:🇲🇿 2947 | flag_Namibia:🇳🇦 2948 | flag_New_Caledonia:🇳🇨 2949 | flag_Niger:🇳🇪 2950 | flag_Norfolk_Island:🇳🇫 2951 | flag_Nigeria:🇳🇬 2952 | flag_Nicaragua:🇳🇮 2953 | flag_Netherlands:🇳🇱 2954 | flag_Norway:🇳🇴 2955 | flag_Nepal:🇳🇵 2956 | flag_Nauru:🇳🇷 2957 | flag_Niue:🇳🇺 2958 | flag_New_Zealand:🇳🇿 2959 | flag_Oman:🇴🇲 2960 | flag_Panama:🇵🇦 2961 | flag_Peru:🇵🇪 2962 | flag_French_Polynesia:🇵🇫 2963 | flag_Papua_New_Guinea:🇵🇬 2964 | flag_Philippines:🇵🇭 2965 | flag_Pakistan:🇵🇰 2966 | flag_Poland:🇵🇱 2967 | flag_St._Pierre_&_Miquelon:🇵🇲 2968 | flag_Pitcairn_Islands:🇵🇳 2969 | flag_Puerto_Rico:🇵🇷 2970 | flag_Palestinian_Territories:🇵🇸 2971 | flag_Portugal:🇵🇹 2972 | flag_Palau:🇵🇼 2973 | flag_Paraguay:🇵🇾 2974 | flag_Qatar:🇶🇦 2975 | flag_Réunion:🇷🇪 2976 | flag_Romania:🇷🇴 2977 | flag_Serbia:🇷🇸 2978 | flag_Russia:🇷🇺 2979 | flag_Rwanda:🇷🇼 2980 | flag_Saudi_Arabia:🇸🇦 2981 | flag_Solomon_Islands:🇸🇧 2982 | flag_Seychelles:🇸🇨 2983 | flag_Sudan:🇸🇩 2984 | flag_Sweden:🇸🇪 2985 | flag_Singapore:🇸🇬 2986 | flag_St._Helena:🇸🇭 2987 | flag_Slovenia:🇸🇮 2988 | flag_Svalbard_&_Jan_Mayen:🇸🇯 2989 | flag_Slovakia:🇸🇰 2990 | flag_Sierra_Leone:🇸🇱 2991 | flag_San_Marino:🇸🇲 2992 | flag_Senegal:🇸🇳 2993 | flag_Somalia:🇸🇴 2994 | flag_Suriname:🇸🇷 2995 | flag_South_Sudan:🇸🇸 2996 | flag_São_Tomé_&_Príncipe:🇸🇹 2997 | flag_El_Salvador:🇸🇻 2998 | flag_Sint_Maarten:🇸🇽 2999 | flag_Syria:🇸🇾 3000 | flag_Eswatini:🇸🇿 3001 | flag_Tristan_da_Cunha:🇹🇦 3002 | flag_Turks_&_Caicos_Islands:🇹🇨 3003 | flag_Chad:🇹🇩 3004 | flag_French_Southern_Territories:🇹🇫 3005 | flag_Togo:🇹🇬 3006 | flag_Thailand:🇹🇭 3007 | flag_Tajikistan:🇹🇯 3008 | flag_Tokelau:🇹🇰 3009 | flag_Timor-Leste:🇹🇱 3010 | flag_Turkmenistan:🇹🇲 3011 | flag_Tunisia:🇹🇳 3012 | flag_Tonga:🇹🇴 3013 | flag_Turkey:🇹🇷 3014 | flag_Trinidad_&_Tobago:🇹🇹 3015 | flag_Tuvalu:🇹🇻 3016 | flag_Taiwan:🇹🇼 3017 | flag_Tanzania:🇹🇿 3018 | flag_Ukraine:🇺🇦 3019 | flag_Uganda:🇺🇬 3020 | flag_U.S._Outlying_Islands:🇺🇲 3021 | flag_United_Nations:🇺🇳 3022 | flag_United_States:🇺🇸 3023 | flag_Uruguay:🇺🇾 3024 | flag_Uzbekistan:🇺🇿 3025 | flag_Vatican_City:🇻🇦 3026 | flag_St._Vincent_&_Grenadines:🇻🇨 3027 | flag_Venezuela:🇻🇪 3028 | flag_British_Virgin_Islands:🇻🇬 3029 | flag_U.S._Virgin_Islands:🇻🇮 3030 | flag_Vietnam:🇻🇳 3031 | flag_Vanuatu:🇻🇺 3032 | flag_Wallis_&_Futuna:🇼🇫 3033 | flag_Samoa:🇼🇸 3034 | flag_Kosovo:🇽🇰 3035 | flag_Yemen:🇾🇪 3036 | flag_Mayotte:🇾🇹 3037 | flag_South_Africa:🇿🇦 3038 | flag_Zambia:🇿🇲 3039 | flag_Zimbabwe:🇿🇼 3040 | flag_England:🏴󠁧󠁢󠁥󠁮󠁧󠁿 3041 | flag_Scotland:🏴󠁧󠁢󠁳󠁣󠁴󠁿 3042 | flag_Wales:🏴󠁧󠁢󠁷󠁬󠁳󠁿 3043 | -------------------------------------------------------------------------------- /packages/emoji/index.js: -------------------------------------------------------------------------------- 1 | const {sources} = require('coc.nvim') 2 | const fs = require('fs') 3 | const {promisify} = require('util') 4 | 5 | let items 6 | 7 | exports.activate = async context => { 8 | const filepath = context.asAbsolutePath('emoji.txt') 9 | 10 | let source = { 11 | name: 'emoji', 12 | triggerOnly: true, 13 | doComplete: async function (opt) { 14 | if (!items) { 15 | let content = await promisify(fs.readFile)(filepath, 'utf8') 16 | let lines = content.split(/\n/).slice(0, -1) 17 | items = lines.map(str => { 18 | let parts = str.split(':') 19 | return {description: parts[0], character: parts[1]} 20 | }) 21 | } 22 | 23 | return { 24 | startcol: opt.col - 1, 25 | items: items.map(o => { 26 | return { 27 | word: o.character, 28 | abbr: `${o.character} ${o.description}`, 29 | menu: this.menu, 30 | filterText: o.description, 31 | } 32 | }) 33 | } 34 | } 35 | } 36 | context.subscriptions.push(sources.createSource(source)) 37 | } 38 | -------------------------------------------------------------------------------- /packages/emoji/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-emoji", 3 | "version": "1.3.1", 4 | "description": "emoji source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "emoji" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.emoji.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.emoji.shortcut": { 29 | "type": "string", 30 | "default": "T" 31 | }, 32 | "coc.source.emoji.triggerCharacters": { 33 | "type": "array", 34 | "default": [ 35 | ":" 36 | ], 37 | "items": { 38 | "type": "string" 39 | } 40 | }, 41 | "coc.source.emoji.priority": { 42 | "type": "integer", 43 | "default": 3 44 | }, 45 | "coc.source.emoji.disableSyntaxes": { 46 | "type": "array", 47 | "default": [], 48 | "items": { 49 | "type": "string" 50 | } 51 | }, 52 | "coc.source.emoji.filetypes": { 53 | "type": [ 54 | "array", 55 | "null" 56 | ], 57 | "default": [ 58 | "markdown" 59 | ], 60 | "items": { 61 | "type": "string" 62 | } 63 | } 64 | } 65 | } 66 | }, 67 | "author": "chemzqm@gmail.com", 68 | "license": "MIT", 69 | "bugs": { 70 | "url": "https://github.com/neoclide/coc-sources/issues" 71 | }, 72 | "homepage": "https://github.com/neoclide/coc-sources#readme", 73 | "devDependencies": { 74 | "coc.nvim": ">=0.0.57" 75 | }, 76 | "gitHead": "7ead63e794458e58e85d93556be8bf566ad1ceeb" 77 | } 78 | -------------------------------------------------------------------------------- /packages/gocode/Readme.md: -------------------------------------------------------------------------------- 1 | # coc-gocode 2 | 3 | Go completion plugin for [coc.nvim](https://github.com/neoclide/coc.nvim) 4 | 5 | ## Install 6 | 7 | In your vim/neovim, run command: 8 | 9 | ``` 10 | :CocInstall coc-gocode 11 | ``` 12 | 13 | ## Configuration 14 | 15 | - `coc.source.gocode.enable` enable gocode, default `true`. 16 | - `coc.source.gocode.priority` priority of gocode source, default: 99. 17 | - `coc.source.gocode.shortcut` shortcut of gocode source, default: 'GOC'. 18 | - `coc.source.gocode.gocodeBinary` binary path of gocode, detect from \$PATH by default 19 | 20 | ## LICENSE 21 | 22 | MIT 23 | -------------------------------------------------------------------------------- /packages/gocode/index.js: -------------------------------------------------------------------------------- 1 | const {sources, workspace} = require('coc.nvim') 2 | const which = require('which') 3 | const {spawn} = require('child_process') 4 | 5 | exports.activate = context => { 6 | let config = workspace.getConfiguration('coc.source.gocode') 7 | let binary = config.get('gocodeBinary', '') 8 | if (!binary) { 9 | try { 10 | binary = which.sync('gocode') 11 | } catch (e) { 12 | workspace.showMessage('gocode binary not found!', 'error') 13 | return 14 | } 15 | } 16 | let pumevent = workspace.env.pumevent 17 | 18 | let source = { 19 | name: 'gocode', 20 | triggerCharacters: ['.', ':'], 21 | doComplete: function (opt, token) { 22 | let {filepath, linenr, col, input, bufnr} = opt 23 | let document = workspace.getDocument(bufnr) 24 | 25 | let menu = this.menu || '' 26 | if (input.length) { 27 | // limit result 28 | col = col + 1 29 | } 30 | let offset = document.getOffset(linenr, col) 31 | const child = spawn('gocode', ['-f=vim', 'autocomplete', filepath, `c${offset}`]) 32 | return new Promise((resolve, reject) => { 33 | let output = '' 34 | let exited = false 35 | token.onCancellationRequested(() => { 36 | child.kill('SIGHUP') 37 | resolve(null) 38 | }) 39 | child.stdout.on('data', data => { 40 | output = output + data.toString() 41 | }) 42 | child.on('exit', () => { 43 | exited = true 44 | if (!output) return resolve(null) 45 | try { 46 | output = output.replace(/''/g, '\\"') 47 | let list = JSON.parse(output.replace(/'/g, '"')) 48 | if (list.length < 2) return resolve(null) 49 | let items = list[1] 50 | resolve({ 51 | items: items.map(item => { 52 | item.word = item.word.replace(/\($/, '') 53 | if (pumevent) item.abbr = item.word 54 | return Object.assign({}, item, { 55 | menu: item.menu ? `${item.menu} ${menu}` : menu 56 | }) 57 | }) 58 | }) 59 | } catch (e) { 60 | reject(new Error('invalid output from gocode')) 61 | } 62 | }) 63 | setTimeout(() => { 64 | if (!exited) { 65 | child.kill('SIGHUP') 66 | reject(new Error('gocode timeout')) 67 | } 68 | }, 2000) 69 | child.stdin.write(document.content, 'utf8') 70 | child.stdin.end() 71 | }) 72 | } 73 | } 74 | 75 | context.subscriptions.push(sources.createSource(source)) 76 | } 77 | -------------------------------------------------------------------------------- /packages/gocode/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-gocode", 3 | "version": "1.2.4", 4 | "description": "gocode source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "gocode" 16 | ], 17 | "activationEvents": [ 18 | "onLanguage:go" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.gocode.disableSyntaxes": { 25 | "type": "array", 26 | "default": [], 27 | "items": { 28 | "type": "string" 29 | } 30 | }, 31 | "coc.source.gocode.enable": { 32 | "type": "boolean", 33 | "default": true 34 | }, 35 | "coc.source.gocode.priority": { 36 | "type": "integer", 37 | "default": 99 38 | }, 39 | "coc.source.gocode.shortcut": { 40 | "type": "string", 41 | "default": "GOC" 42 | }, 43 | "coc.source.gocode.gocodeBinary": { 44 | "type": "string", 45 | "default": "", 46 | "description": "Binary full path of gocode executable" 47 | }, 48 | "coc.source.gocode.filetypes": { 49 | "type": [ 50 | "array", 51 | "null" 52 | ], 53 | "default": [ 54 | "go" 55 | ], 56 | "items": { 57 | "type": "string" 58 | } 59 | } 60 | } 61 | } 62 | }, 63 | "author": "chemzqm@gmail.com", 64 | "license": "MIT", 65 | "bugs": { 66 | "url": "https://github.com/neoclide/coc-sources/issues" 67 | }, 68 | "homepage": "https://github.com/neoclide/coc-sources#readme", 69 | "devDependencies": { 70 | "coc.nvim": ">=0.0.57" 71 | }, 72 | "dependencies": { 73 | "which": "^1.3.1" 74 | }, 75 | "gitHead": "135964545eef214862ba8f17c2c4b7f17e99fc59" 76 | } 77 | -------------------------------------------------------------------------------- /packages/neosnippet/Readme.md: -------------------------------------------------------------------------------- 1 | # coc-neosnippet 2 | 3 | Neosnippet completion plugin for [coc.nvim](https://github.com/neoclide/coc.nvim) 4 | 5 | ## Install 6 | 7 | In your vim/neovim, run command: 8 | 9 | ``` 10 | :CocInstall coc-neosnippet 11 | ``` 12 | 13 | ## LICENSE 14 | 15 | MIT 16 | -------------------------------------------------------------------------------- /packages/neosnippet/index.js: -------------------------------------------------------------------------------- 1 | const { sources, workspace } = require('coc.nvim') 2 | 3 | exports.activate = context => { 4 | let { nvim } = workspace 5 | let cache = {} 6 | 7 | async function getItems(filetype, menu) { 8 | let items = cache[filetype] 9 | if (items && items.length) return items 10 | items = [] 11 | let obj = await nvim.call('neosnippet#helpers#get_completion_snippets') 12 | for (let key of Object.keys(obj)) { 13 | let val = obj[key] 14 | items.push({ 15 | word: val.word, 16 | menu: val.menu_abbr + (menu? ` ${menu}` : ''), 17 | isSnippet: true 18 | }) 19 | } 20 | cache[filetype] = items 21 | return items 22 | } 23 | 24 | let loadError = false 25 | let source = { 26 | name: 'neosnippet', 27 | triggerCharacters: [], 28 | doComplete: async function (opt) { 29 | let loaded = await nvim.getVar('loaded_neosnippet') 30 | if (!loaded) { 31 | if (!loadError) workspace.showMessage('Neosnippet not loaded', 'error') 32 | loadError = true 33 | return 34 | } 35 | let items = await getItems(opt.filetype, this.menu) 36 | return { items } 37 | }, 38 | onCompleteDone: () => { 39 | nvim.eval('feedkeys("\\(neosnippet_expand)")') 40 | }, 41 | onEnter: async () => { 42 | let loaded = await nvim.getVar('loaded_neosnippet') 43 | if (loaded == 0) return 44 | let buftype = await nvim.eval('&buftype') 45 | if (buftype != '') return 46 | let filetype = await nvim.eval('&filetype') 47 | if (!filetype) return 48 | try { 49 | await getItems(filetype) 50 | } catch (e) { 51 | return 52 | } 53 | } 54 | } 55 | 56 | context.subscriptions.push(sources.createSource(source)) 57 | } 58 | -------------------------------------------------------------------------------- /packages/neosnippet/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-neosnippet", 3 | "version": "1.2.2", 4 | "description": "neosnippet source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "neosnippet" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.neosnippet.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.neosnippet.disableSyntaxes": { 29 | "type": "array", 30 | "default": [], 31 | "items": { 32 | "type": "string" 33 | } 34 | }, 35 | "coc.source.neosnippet.priority": { 36 | "type": "integer", 37 | "default": 100 38 | }, 39 | "coc.source.neosnippet.shortcut": { 40 | "type": "string", 41 | "default": "NS" 42 | }, 43 | "coc.source.neosnippet.filetypes": { 44 | "type": [ 45 | "array", 46 | "null" 47 | ], 48 | "default": null, 49 | "items": { 50 | "type": "string" 51 | } 52 | } 53 | } 54 | } 55 | }, 56 | "author": "chemzqm@gmail.com", 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/neoclide/coc-sources/issues" 60 | }, 61 | "homepage": "https://github.com/neoclide/coc-sources#readme", 62 | "devDependencies": { 63 | "coc.nvim": ">=0.0.57" 64 | }, 65 | "gitHead": "7ead63e794458e58e85d93556be8bf566ad1ceeb" 66 | } 67 | -------------------------------------------------------------------------------- /packages/omni/Readme.md: -------------------------------------------------------------------------------- 1 | # coc-omni 2 | 3 | Omni completion plugin for [coc.nvim](https://github.com/neoclide/coc.nvim) 4 | 5 | Using omni completion in coc.nvim is not recommended, it will block vim on 6 | completion. 7 | 8 | Don't enable this source for filetypes that you're using language server for 9 | completion. 10 | 11 | ## Install 12 | 13 | In your vim/neovim, run command: 14 | 15 | ``` 16 | :CocInstall coc-omni 17 | ``` 18 | 19 | ## Configuration 20 | 21 | - `coc.source.omni.enable` enable omni completion, default `true`. 22 | - `coc.source.omni.priority` priority of omni source, default: `3`. 23 | - `coc.source.omni.shortcut` shortcut of omni source, default: `"O"`. 24 | - `coc.source.omni.filetypes` filetype list to enable omni source, default: `[]` 25 | 26 | ## F.A.Q 27 | 28 | Q: This extension not working. 29 | 30 | A: Make sure current filetype is included in `coc.source.omni.filetypes` section of your 31 | `coc-settings.json`, then make sure `omnifunc` is specified for current buffer 32 | by command: `:echo &omnifunc`. 33 | 34 | ## LICENSE 35 | 36 | MIT 37 | -------------------------------------------------------------------------------- /packages/omni/index.js: -------------------------------------------------------------------------------- 1 | const {sources, workspace} = require('coc.nvim') 2 | 3 | function byteSlice(content, start, end) { 4 | let buf = Buffer.from(content, 'utf8') 5 | return buf.slice(start, end).toString('utf8') 6 | } 7 | 8 | exports.activate = context => { 9 | function convertToItems(list, menu) { 10 | let res = [] 11 | for (let item of list) { 12 | if (typeof item == 'string') { 13 | res.push({word: item, menu}) 14 | } 15 | if (item.hasOwnProperty('word')) { 16 | item.menu = item.menu ? item.menu : menu 17 | res.push(item) 18 | } 19 | } 20 | return res 21 | } 22 | 23 | context.subscriptions.push(sources.createSource({ 24 | name: 'omni', 25 | doComplete: async function (opt) { 26 | let {nvim} = workspace 27 | let func = await nvim.eval('&omnifunc') 28 | if (!func) return null 29 | let {line, colnr, col} = opt 30 | let startcol = col 31 | try { 32 | startcol = await nvim.call(func, [1, '']) 33 | startcol = Number(startcol) 34 | } catch (e) { 35 | workspace.showMessage(`vim error from ${func} :${e.message}`, 'error') 36 | return null 37 | } 38 | // invalid startcol 39 | if (isNaN(startcol) || startcol < 0 || startcol > colnr) return null 40 | let text = byteSlice(line, startcol, colnr - 1) 41 | let [words] = await nvim.eval(`[${func}(0, '${text.replace(/'/g, "''")}'),cursor(${opt.linenr},${colnr})]`) 42 | if (!words || words.length == 0) return null 43 | if (words.hasOwnProperty('words')) { 44 | words = words.words 45 | } 46 | let res = {items: convertToItems(words, this.menu)} 47 | res.startcol = startcol 48 | return res 49 | } 50 | })) 51 | } 52 | -------------------------------------------------------------------------------- /packages/omni/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-omni", 3 | "version": "1.2.4", 4 | "description": "omni source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "omni" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.omni.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.omni.priority": { 29 | "type": "integer", 30 | "default": 9 31 | }, 32 | "coc.source.omni.triggerCharacters": { 33 | "type": "array", 34 | "default": null, 35 | "items": { 36 | "type": "string" 37 | } 38 | }, 39 | "coc.source.omni.disableSyntaxes": { 40 | "type": "array", 41 | "default": [], 42 | "items": { 43 | "type": "string" 44 | } 45 | }, 46 | "coc.source.omni.shortcut": { 47 | "type": "string", 48 | "default": "O" 49 | }, 50 | "coc.source.omni.filetypes": { 51 | "type": [ 52 | "array", 53 | "null" 54 | ], 55 | "default": [], 56 | "description": "Enabled filetypes", 57 | "items": { 58 | "type": "string" 59 | } 60 | } 61 | } 62 | } 63 | }, 64 | "author": "chemzqm@gmail.com", 65 | "license": "MIT", 66 | "bugs": { 67 | "url": "https://github.com/neoclide/coc-sources/issues" 68 | }, 69 | "homepage": "https://github.com/neoclide/coc-sources#readme", 70 | "devDependencies": { 71 | "coc.nvim": ">=0.0.57" 72 | }, 73 | "gitHead": "135964545eef214862ba8f17c2c4b7f17e99fc59" 74 | } 75 | -------------------------------------------------------------------------------- /packages/syntax/index.js: -------------------------------------------------------------------------------- 1 | const {sources, workspace, window} = require('coc.nvim') 2 | 3 | // key values 4 | let cache = {} 5 | 6 | exports.activate = async context => { 7 | let {nvim} = workspace 8 | let outputChannel = window.createOutputChannel('syntax'); 9 | let source = { 10 | name: 'syntax', 11 | triggerCharacters: [], 12 | doComplete: async function (opt) { 13 | let words = cache[opt.filetype] 14 | if (!words) { 15 | try { 16 | words = await nvim.call('syntaxcomplete#OmniSyntaxList') 17 | // eslint-disable-next-line require-atomic-updates 18 | cache[opt.filetype] = words 19 | } catch (e) { 20 | outputChannel.append(`Error: ${e.message}`) 21 | return null 22 | } 23 | } 24 | let {input} = opt 25 | if (!input.length) return null 26 | let {firstMatch} = this 27 | let isUpperCase = input[0] == input[0].toUpperCase() 28 | if (firstMatch) { 29 | let first = input[0] 30 | words = words.filter(s => { 31 | return isUpperCase ? s.startsWith(first) : s.toUpperCase().startsWith(first.toUpperCase()) 32 | }) 33 | } 34 | return { 35 | items: words.map(s => { 36 | return { 37 | word: s, 38 | menu: this.menu 39 | } 40 | }) 41 | } 42 | } 43 | } 44 | 45 | context.subscriptions.push(sources.createSource(source)) 46 | } 47 | -------------------------------------------------------------------------------- /packages/syntax/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-syntax", 3 | "version": "1.2.5", 4 | "description": "Syntax words completion source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "syntax" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.syntax.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.syntax.firstMatch": { 29 | "type": "boolean", 30 | "default": true 31 | }, 32 | "coc.source.syntax.shortcut": { 33 | "type": "string", 34 | "default": "SYN" 35 | }, 36 | "coc.source.syntax.priority": { 37 | "type": "integer", 38 | "default": 3 39 | }, 40 | "coc.source.syntax.disableSyntaxes": { 41 | "type": "array", 42 | "default": [], 43 | "items": { 44 | "type": "string" 45 | } 46 | }, 47 | "coc.source.syntax.filetypes": { 48 | "type": [ 49 | "array", 50 | "null" 51 | ], 52 | "items": { 53 | "type": "string" 54 | }, 55 | "default": null, 56 | "description": "Enabled filetypes, default enabled for all filetypes." 57 | } 58 | } 59 | } 60 | }, 61 | "author": "chemzqm@gmail.com", 62 | "license": "MIT", 63 | "bugs": { 64 | "url": "https://github.com/neoclide/coc-sources/issues" 65 | }, 66 | "homepage": "https://github.com/neoclide/coc-sources#readme", 67 | "devDependencies": { 68 | "coc.nvim": ">=0.0.57" 69 | }, 70 | "gitHead": "135964545eef214862ba8f17c2c4b7f17e99fc59" 71 | } 72 | -------------------------------------------------------------------------------- /packages/tag/index.js: -------------------------------------------------------------------------------- 1 | const {sources, workspace} = require('coc.nvim') 2 | const path = require('path') 3 | const fs = require('fs') 4 | const util = require('util') 5 | const readline = require('readline') 6 | 7 | const TAG_CACHE = {} 8 | const {nvim} = workspace 9 | 10 | async function getTagFiles() { 11 | let files = await nvim.call('tagfiles') 12 | if (!files || files.length == 0) return [] 13 | let cwd = await nvim.call('getcwd') 14 | files = files.map(f => { 15 | return path.isAbsolute(f) ? f : path.join(cwd, f) 16 | }) 17 | let tagfiles = [] 18 | for (let file of files) { 19 | try { 20 | let stat = await util.promisify(fs.stat)(file) 21 | if (!stat || !stat.isFile()) continue 22 | tagfiles.push({file, mtime: stat.mtime}) 23 | } catch (e) { 24 | // noop 25 | } 26 | } 27 | return tagfiles 28 | } 29 | 30 | function readFileByLine(fullpath, onLine, limit = 50000) { 31 | const rl = readline.createInterface({ 32 | input: fs.createReadStream(fullpath), 33 | crlfDelay: Infinity, 34 | terminal: false, 35 | highWaterMark: 1024 * 1024 36 | }) 37 | let n = 0 38 | rl.on('line', line => { 39 | n = n + 1 40 | if (n === limit) { 41 | rl.close() 42 | } else { 43 | onLine(line) 44 | } 45 | }) 46 | return new Promise((resolve, reject) => { 47 | rl.on('close', () => { 48 | resolve() 49 | }) 50 | rl.on('error', reject) 51 | }) 52 | } 53 | 54 | async function loadTags(fullpath, mtime) { 55 | let item = TAG_CACHE[fullpath] 56 | if (item && item.mtime >= mtime) return item.words 57 | let words = new Map() 58 | await readFileByLine(fullpath, line => { 59 | if (line[0] == '!') return 60 | let ms = line.split(/\t\s*/) 61 | if (ms.length < 2) return 62 | let [word, path] = ms 63 | let wordItem = words.get(word) || [] 64 | wordItem.push(path) 65 | words.set(word, wordItem) 66 | }) 67 | // eslint-disable-next-line require-atomic-updates 68 | TAG_CACHE[fullpath] = {words, mtime} 69 | return words 70 | } 71 | 72 | exports.activate = context => { 73 | context.subscriptions.push(sources.createSource({ 74 | name: 'tag', 75 | doComplete: async function (opt) { 76 | let {input} = opt 77 | if (input.length == 0) return null 78 | let tagfiles = await getTagFiles() 79 | if (!tagfiles || tagfiles.length == 0) return null 80 | let list = await Promise.all(tagfiles.map(o => loadTags(o.file, o.mtime))) 81 | let items = [] 82 | for (let words of list) { 83 | for (let [word, paths] of words.entries()) { 84 | if (word[0] !== input[0]) continue 85 | let infoList = Array.from(new Set(paths)) 86 | let len = infoList.length 87 | if (len > 10) { 88 | infoList = infoList.slice(0, 10) 89 | infoList.push(`${len - 10} more...`) 90 | } 91 | items.push({ 92 | word, 93 | menu: this.menu, 94 | info: infoList.join('\n') 95 | }) 96 | } 97 | } 98 | 99 | return {items} 100 | } 101 | })) 102 | } 103 | -------------------------------------------------------------------------------- /packages/tag/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-tag", 3 | "version": "1.2.5", 4 | "description": "tag source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "tag" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.tag.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.tag.shortcut": { 29 | "type": "string", 30 | "default": "T" 31 | }, 32 | "coc.source.tag.priority": { 33 | "type": "integer", 34 | "default": 3 35 | }, 36 | "coc.source.tag.disableSyntaxes": { 37 | "type": "array", 38 | "default": [], 39 | "items": { 40 | "type": "string" 41 | } 42 | }, 43 | "coc.source.tag.filetypes": { 44 | "type": [ 45 | "array", 46 | "null" 47 | ], 48 | "default": null, 49 | "items": { 50 | "type": "string" 51 | } 52 | } 53 | } 54 | } 55 | }, 56 | "author": "chemzqm@gmail.com", 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/neoclide/coc-sources/issues" 60 | }, 61 | "homepage": "https://github.com/neoclide/coc-sources#readme", 62 | "devDependencies": { 63 | "coc.nvim": ">=0.0.57" 64 | }, 65 | "gitHead": "135964545eef214862ba8f17c2c4b7f17e99fc59" 66 | } 67 | -------------------------------------------------------------------------------- /packages/ultisnips/Readme.md: -------------------------------------------------------------------------------- 1 | # coc-ultisnips 2 | 3 | Ultisnips completion plugin for [coc.nvim](https://github.com/neoclide/coc.nvim) 4 | 5 | ## Install 6 | 7 | In your vim/neovim, run command: 8 | 9 | ``` 10 | :CocInstall coc-ultisnips 11 | ``` 12 | 13 | ## LICENSE 14 | 15 | MIT 16 | -------------------------------------------------------------------------------- /packages/ultisnips/index.js: -------------------------------------------------------------------------------- 1 | const {sources, workspace} = require('coc.nvim') 2 | 3 | exports.activate = context => { 4 | let {nvim} = workspace 5 | 6 | let loadError = false 7 | let source = { 8 | name: 'ultisnips', 9 | triggerCharacters: [], 10 | doComplete: async function () { 11 | let loaded = await nvim.getVar('did_plugin_ultisnips') 12 | if (!loaded) { 13 | if (!loadError) workspace.showMessage('Ultisnips not loaded', 'error') 14 | loadError = true 15 | return 16 | } 17 | let res = await nvim.call('UltiSnips#SnippetsInCurrentScope') 18 | let items = [] 19 | if (Array.isArray(res)) { 20 | for (let item of res) { 21 | items.push({ 22 | word: item.key, 23 | info: item.description || '', 24 | menu: this.menu, 25 | isSnippet: true 26 | }) 27 | } 28 | } else { 29 | for (let key of Object.keys(res)) { 30 | items.push({ 31 | word: key, 32 | info: res[key] || '', 33 | menu: this.menu, 34 | isSnippet: true 35 | }) 36 | } 37 | } 38 | return {items} 39 | }, 40 | onCompleteDone: () => { 41 | nvim.call('UltiSnips#ExpandSnippet', [], true) 42 | } 43 | } 44 | 45 | context.subscriptions.push(sources.createSource(source)) 46 | } 47 | -------------------------------------------------------------------------------- /packages/ultisnips/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-ultisnips", 3 | "version": "1.2.4", 4 | "description": "ultisnips source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "ultisnips" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.ultisnips.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.ultisnips.disableSyntaxes": { 29 | "type": "array", 30 | "default": [], 31 | "items": { 32 | "type": "string" 33 | } 34 | }, 35 | "coc.source.ultisnips.priority": { 36 | "type": "integer", 37 | "default": 100 38 | }, 39 | "coc.source.ultisnips.shortcut": { 40 | "type": "string", 41 | "default": "US" 42 | }, 43 | "coc.source.ultisnips.filetypes": { 44 | "type": [ 45 | "array", 46 | "null" 47 | ], 48 | "default": null, 49 | "items": { 50 | "type": "string" 51 | } 52 | } 53 | } 54 | } 55 | }, 56 | "author": "chemzqm@gmail.com", 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/neoclide/coc-sources/issues" 60 | }, 61 | "homepage": "https://github.com/neoclide/coc-sources#readme", 62 | "devDependencies": { 63 | "coc.nvim": ">=0.0.57" 64 | }, 65 | "gitHead": "7ead63e794458e58e85d93556be8bf566ad1ceeb" 66 | } 67 | -------------------------------------------------------------------------------- /packages/word/Readme.md: -------------------------------------------------------------------------------- 1 | # coc-word 2 | 3 | Compete words from google 10000 english repo. 4 | 5 | ```vim 6 | :CocInstall coc-word 7 | ``` 8 | 9 | Use command: 10 | 11 | ```vim 12 | CocList extensions 13 | ``` 14 | 15 | to manage coc extensions. 16 | 17 | ## Configuration 18 | 19 | - `coc.source.word.enable`: default `true`. 20 | - `coc.source.word.shortcut`: shortcut in menu, default `10k`. 21 | - `coc.source.word.priority`: default `0`. 22 | - `coc.source.word.filetypes`: default `null`. 23 | 24 | ## LICENSE 25 | 26 | Copyright 2019 chemzqm@gmail.com 27 | 28 | Permission is hereby granted, free of charge, to any person obtaining 29 | a copy of this software and associated documentation files (the "Software"), 30 | to deal in the Software without restriction, including without limitation 31 | the rights to use, copy, modify, merge, publish, distribute, sublicense, 32 | and/or sell copies of the Software, and to permit persons to whom the 33 | Software is furnished to do so, subject to the following conditions: 34 | 35 | The above copyright notice and this permission notice shall be included 36 | in all copies or substantial portions of the Software. 37 | 38 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 39 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 40 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 41 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 42 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 43 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 44 | OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 45 | -------------------------------------------------------------------------------- /packages/word/index.js: -------------------------------------------------------------------------------- 1 | const { sources } = require('coc.nvim') 2 | const path = require('path') 3 | const fs = require('fs') 4 | 5 | let words = [] 6 | 7 | exports.activate = async context => { 8 | let file = path.resolve(__dirname, '10k.txt') 9 | fs.readFile(file, 'utf8', (err, content) => { 10 | if (err) return 11 | words = content.split(/\n/) 12 | }) 13 | 14 | context.subscriptions.push(sources.createSource({ 15 | name: 'word', 16 | triggerCharacters: [], 17 | doComplete: async function (opt) { 18 | if (!opt.input) return null 19 | if (!/^[A-Za-z]{1,}$/.test(opt.input)) return null 20 | let first = opt.input[0] 21 | let list = words.filter(s => s[0] == first.toLowerCase()) 22 | let code = first.charCodeAt(0) 23 | let upperCase = code <= 90 && code >= 65 24 | return { 25 | items: list.map(str => { 26 | let word = upperCase ? str[0].toUpperCase() + str.slice(1) : str 27 | return { 28 | word, 29 | menu: this.menu 30 | } 31 | }) 32 | } 33 | } 34 | })) 35 | } 36 | -------------------------------------------------------------------------------- /packages/word/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-word", 3 | "version": "1.2.2", 4 | "description": "word source for coc.nvim", 5 | "scripts": {}, 6 | "engines": { 7 | "coc": ">=0.0.57" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/neoclide/coc-sources.git" 12 | }, 13 | "keywords": [ 14 | "coc.nvim", 15 | "word" 16 | ], 17 | "activationEvents": [ 18 | "*" 19 | ], 20 | "contributes": { 21 | "configuration": { 22 | "type": "object", 23 | "properties": { 24 | "coc.source.word.enable": { 25 | "type": "boolean", 26 | "default": true 27 | }, 28 | "coc.source.word.shortcut": { 29 | "type": "string", 30 | "default": "10K" 31 | }, 32 | "coc.source.word.disableSyntaxes": { 33 | "type": "array", 34 | "default": [], 35 | "items": { 36 | "type": "string" 37 | } 38 | }, 39 | "coc.source.word.priority": { 40 | "type": "integer", 41 | "default": 0 42 | }, 43 | "coc.source.word.filetypes": { 44 | "type": [ 45 | "array", 46 | "null" 47 | ], 48 | "default": null, 49 | "items": { 50 | "type": "string" 51 | } 52 | } 53 | } 54 | } 55 | }, 56 | "author": "chemzqm@gmail.com", 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/neoclide/coc-sources/issues" 60 | }, 61 | "homepage": "https://github.com/neoclide/coc-sources#readme", 62 | "devDependencies": { 63 | "coc.nvim": ">=0.0.57" 64 | }, 65 | "gitHead": "7ead63e794458e58e85d93556be8bf566ad1ceeb" 66 | } 67 | --------------------------------------------------------------------------------