doing 2.0.20 → 2.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/doing.rdoc +1 -1
  6. data/lib/doing/log_adapter.rb +3 -1
  7. data/lib/doing/version.rb +1 -1
  8. data/lib/doing/wwid.rb +19 -8
  9. data/lib/helpers/fzf/.goreleaser.yml +119 -0
  10. data/lib/helpers/fzf/.rubocop.yml +28 -0
  11. data/lib/helpers/fzf/ADVANCED.md +565 -0
  12. data/lib/helpers/fzf/BUILD.md +49 -0
  13. data/lib/helpers/fzf/CHANGELOG.md +1193 -0
  14. data/lib/helpers/fzf/Dockerfile +11 -0
  15. data/lib/helpers/fzf/LICENSE +21 -0
  16. data/lib/helpers/fzf/Makefile +166 -0
  17. data/lib/helpers/fzf/README-VIM.md +486 -0
  18. data/lib/helpers/fzf/README.md +712 -0
  19. data/lib/helpers/fzf/bin/fzf-tmux +233 -0
  20. data/lib/helpers/fzf/doc/fzf.txt +512 -0
  21. data/lib/helpers/fzf/go.mod +17 -0
  22. data/lib/helpers/fzf/go.sum +31 -0
  23. data/lib/helpers/fzf/install +382 -0
  24. data/lib/helpers/fzf/install.ps1 +65 -0
  25. data/lib/helpers/fzf/main.go +14 -0
  26. data/lib/helpers/fzf/man/man1/fzf-tmux.1 +68 -0
  27. data/lib/helpers/fzf/man/man1/fzf.1 +1001 -0
  28. data/lib/helpers/fzf/plugin/fzf.vim +1048 -0
  29. data/lib/helpers/fzf/shell/completion.bash +381 -0
  30. data/lib/helpers/fzf/shell/completion.zsh +329 -0
  31. data/lib/helpers/fzf/shell/key-bindings.bash +96 -0
  32. data/lib/helpers/fzf/shell/key-bindings.fish +172 -0
  33. data/lib/helpers/fzf/shell/key-bindings.zsh +114 -0
  34. data/lib/helpers/fzf/src/LICENSE +21 -0
  35. data/lib/helpers/fzf/src/algo/algo.go +884 -0
  36. data/lib/helpers/fzf/src/algo/algo_test.go +197 -0
  37. data/lib/helpers/fzf/src/algo/normalize.go +492 -0
  38. data/lib/helpers/fzf/src/ansi.go +409 -0
  39. data/lib/helpers/fzf/src/ansi_test.go +427 -0
  40. data/lib/helpers/fzf/src/cache.go +81 -0
  41. data/lib/helpers/fzf/src/cache_test.go +39 -0
  42. data/lib/helpers/fzf/src/chunklist.go +89 -0
  43. data/lib/helpers/fzf/src/chunklist_test.go +80 -0
  44. data/lib/helpers/fzf/src/constants.go +85 -0
  45. data/lib/helpers/fzf/src/core.go +351 -0
  46. data/lib/helpers/fzf/src/history.go +96 -0
  47. data/lib/helpers/fzf/src/history_test.go +68 -0
  48. data/lib/helpers/fzf/src/item.go +44 -0
  49. data/lib/helpers/fzf/src/item_test.go +23 -0
  50. data/lib/helpers/fzf/src/matcher.go +235 -0
  51. data/lib/helpers/fzf/src/merger.go +120 -0
  52. data/lib/helpers/fzf/src/merger_test.go +88 -0
  53. data/lib/helpers/fzf/src/options.go +1691 -0
  54. data/lib/helpers/fzf/src/options_test.go +457 -0
  55. data/lib/helpers/fzf/src/pattern.go +425 -0
  56. data/lib/helpers/fzf/src/pattern_test.go +209 -0
  57. data/lib/helpers/fzf/src/protector/protector.go +8 -0
  58. data/lib/helpers/fzf/src/protector/protector_openbsd.go +10 -0
  59. data/lib/helpers/fzf/src/reader.go +201 -0
  60. data/lib/helpers/fzf/src/reader_test.go +63 -0
  61. data/lib/helpers/fzf/src/result.go +243 -0
  62. data/lib/helpers/fzf/src/result_others.go +16 -0
  63. data/lib/helpers/fzf/src/result_test.go +159 -0
  64. data/lib/helpers/fzf/src/result_x86.go +16 -0
  65. data/lib/helpers/fzf/src/terminal.go +2832 -0
  66. data/lib/helpers/fzf/src/terminal_test.go +638 -0
  67. data/lib/helpers/fzf/src/terminal_unix.go +26 -0
  68. data/lib/helpers/fzf/src/terminal_windows.go +45 -0
  69. data/lib/helpers/fzf/src/tokenizer.go +253 -0
  70. data/lib/helpers/fzf/src/tokenizer_test.go +112 -0
  71. data/lib/helpers/fzf/src/tui/dummy.go +46 -0
  72. data/lib/helpers/fzf/src/tui/light.go +987 -0
  73. data/lib/helpers/fzf/src/tui/light_unix.go +110 -0
  74. data/lib/helpers/fzf/src/tui/light_windows.go +145 -0
  75. data/lib/helpers/fzf/src/tui/tcell.go +721 -0
  76. data/lib/helpers/fzf/src/tui/tcell_test.go +392 -0
  77. data/lib/helpers/fzf/src/tui/ttyname_unix.go +47 -0
  78. data/lib/helpers/fzf/src/tui/ttyname_windows.go +14 -0
  79. data/lib/helpers/fzf/src/tui/tui.go +625 -0
  80. data/lib/helpers/fzf/src/tui/tui_test.go +20 -0
  81. data/lib/helpers/fzf/src/util/atomicbool.go +34 -0
  82. data/lib/helpers/fzf/src/util/atomicbool_test.go +17 -0
  83. data/lib/helpers/fzf/src/util/chars.go +198 -0
  84. data/lib/helpers/fzf/src/util/chars_test.go +46 -0
  85. data/lib/helpers/fzf/src/util/eventbox.go +96 -0
  86. data/lib/helpers/fzf/src/util/eventbox_test.go +61 -0
  87. data/lib/helpers/fzf/src/util/slab.go +12 -0
  88. data/lib/helpers/fzf/src/util/util.go +138 -0
  89. data/lib/helpers/fzf/src/util/util_test.go +40 -0
  90. data/lib/helpers/fzf/src/util/util_unix.go +47 -0
  91. data/lib/helpers/fzf/src/util/util_windows.go +83 -0
  92. data/lib/helpers/fzf/test/fzf.vader +175 -0
  93. data/lib/helpers/fzf/test/test_go.rb +2626 -0
  94. data/lib/helpers/fzf/uninstall +117 -0
  95. metadata +88 -2
@@ -0,0 +1,492 @@
1
+ // Normalization of latin script letters
2
+ // Reference: http://www.unicode.org/Public/UCD/latest/ucd/Index.txt
3
+
4
+ package algo
5
+
6
+ var normalized map[rune]rune = map[rune]rune{
7
+ 0x00E1: 'a', // WITH ACUTE, LATIN SMALL LETTER
8
+ 0x0103: 'a', // WITH BREVE, LATIN SMALL LETTER
9
+ 0x01CE: 'a', // WITH CARON, LATIN SMALL LETTER
10
+ 0x00E2: 'a', // WITH CIRCUMFLEX, LATIN SMALL LETTER
11
+ 0x00E4: 'a', // WITH DIAERESIS, LATIN SMALL LETTER
12
+ 0x0227: 'a', // WITH DOT ABOVE, LATIN SMALL LETTER
13
+ 0x1EA1: 'a', // WITH DOT BELOW, LATIN SMALL LETTER
14
+ 0x0201: 'a', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
15
+ 0x00E0: 'a', // WITH GRAVE, LATIN SMALL LETTER
16
+ 0x1EA3: 'a', // WITH HOOK ABOVE, LATIN SMALL LETTER
17
+ 0x0203: 'a', // WITH INVERTED BREVE, LATIN SMALL LETTER
18
+ 0x0101: 'a', // WITH MACRON, LATIN SMALL LETTER
19
+ 0x0105: 'a', // WITH OGONEK, LATIN SMALL LETTER
20
+ 0x1E9A: 'a', // WITH RIGHT HALF RING, LATIN SMALL LETTER
21
+ 0x00E5: 'a', // WITH RING ABOVE, LATIN SMALL LETTER
22
+ 0x1E01: 'a', // WITH RING BELOW, LATIN SMALL LETTER
23
+ 0x00E3: 'a', // WITH TILDE, LATIN SMALL LETTER
24
+ 0x0363: 'a', // , COMBINING LATIN SMALL LETTER
25
+ 0x0250: 'a', // , LATIN SMALL LETTER TURNED
26
+ 0x1E03: 'b', // WITH DOT ABOVE, LATIN SMALL LETTER
27
+ 0x1E05: 'b', // WITH DOT BELOW, LATIN SMALL LETTER
28
+ 0x0253: 'b', // WITH HOOK, LATIN SMALL LETTER
29
+ 0x1E07: 'b', // WITH LINE BELOW, LATIN SMALL LETTER
30
+ 0x0180: 'b', // WITH STROKE, LATIN SMALL LETTER
31
+ 0x0183: 'b', // WITH TOPBAR, LATIN SMALL LETTER
32
+ 0x0107: 'c', // WITH ACUTE, LATIN SMALL LETTER
33
+ 0x010D: 'c', // WITH CARON, LATIN SMALL LETTER
34
+ 0x00E7: 'c', // WITH CEDILLA, LATIN SMALL LETTER
35
+ 0x0109: 'c', // WITH CIRCUMFLEX, LATIN SMALL LETTER
36
+ 0x0255: 'c', // WITH CURL, LATIN SMALL LETTER
37
+ 0x010B: 'c', // WITH DOT ABOVE, LATIN SMALL LETTER
38
+ 0x0188: 'c', // WITH HOOK, LATIN SMALL LETTER
39
+ 0x023C: 'c', // WITH STROKE, LATIN SMALL LETTER
40
+ 0x0368: 'c', // , COMBINING LATIN SMALL LETTER
41
+ 0x0297: 'c', // , LATIN LETTER STRETCHED
42
+ 0x2184: 'c', // , LATIN SMALL LETTER REVERSED
43
+ 0x010F: 'd', // WITH CARON, LATIN SMALL LETTER
44
+ 0x1E11: 'd', // WITH CEDILLA, LATIN SMALL LETTER
45
+ 0x1E13: 'd', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
46
+ 0x0221: 'd', // WITH CURL, LATIN SMALL LETTER
47
+ 0x1E0B: 'd', // WITH DOT ABOVE, LATIN SMALL LETTER
48
+ 0x1E0D: 'd', // WITH DOT BELOW, LATIN SMALL LETTER
49
+ 0x0257: 'd', // WITH HOOK, LATIN SMALL LETTER
50
+ 0x1E0F: 'd', // WITH LINE BELOW, LATIN SMALL LETTER
51
+ 0x0111: 'd', // WITH STROKE, LATIN SMALL LETTER
52
+ 0x0256: 'd', // WITH TAIL, LATIN SMALL LETTER
53
+ 0x018C: 'd', // WITH TOPBAR, LATIN SMALL LETTER
54
+ 0x0369: 'd', // , COMBINING LATIN SMALL LETTER
55
+ 0x00E9: 'e', // WITH ACUTE, LATIN SMALL LETTER
56
+ 0x0115: 'e', // WITH BREVE, LATIN SMALL LETTER
57
+ 0x011B: 'e', // WITH CARON, LATIN SMALL LETTER
58
+ 0x0229: 'e', // WITH CEDILLA, LATIN SMALL LETTER
59
+ 0x1E19: 'e', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
60
+ 0x00EA: 'e', // WITH CIRCUMFLEX, LATIN SMALL LETTER
61
+ 0x00EB: 'e', // WITH DIAERESIS, LATIN SMALL LETTER
62
+ 0x0117: 'e', // WITH DOT ABOVE, LATIN SMALL LETTER
63
+ 0x1EB9: 'e', // WITH DOT BELOW, LATIN SMALL LETTER
64
+ 0x0205: 'e', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
65
+ 0x00E8: 'e', // WITH GRAVE, LATIN SMALL LETTER
66
+ 0x1EBB: 'e', // WITH HOOK ABOVE, LATIN SMALL LETTER
67
+ 0x025D: 'e', // WITH HOOK, LATIN SMALL LETTER REVERSED OPEN
68
+ 0x0207: 'e', // WITH INVERTED BREVE, LATIN SMALL LETTER
69
+ 0x0113: 'e', // WITH MACRON, LATIN SMALL LETTER
70
+ 0x0119: 'e', // WITH OGONEK, LATIN SMALL LETTER
71
+ 0x0247: 'e', // WITH STROKE, LATIN SMALL LETTER
72
+ 0x1E1B: 'e', // WITH TILDE BELOW, LATIN SMALL LETTER
73
+ 0x1EBD: 'e', // WITH TILDE, LATIN SMALL LETTER
74
+ 0x0364: 'e', // , COMBINING LATIN SMALL LETTER
75
+ 0x029A: 'e', // , LATIN SMALL LETTER CLOSED OPEN
76
+ 0x025E: 'e', // , LATIN SMALL LETTER CLOSED REVERSED OPEN
77
+ 0x025B: 'e', // , LATIN SMALL LETTER OPEN
78
+ 0x0258: 'e', // , LATIN SMALL LETTER REVERSED
79
+ 0x025C: 'e', // , LATIN SMALL LETTER REVERSED OPEN
80
+ 0x01DD: 'e', // , LATIN SMALL LETTER TURNED
81
+ 0x1D08: 'e', // , LATIN SMALL LETTER TURNED OPEN
82
+ 0x1E1F: 'f', // WITH DOT ABOVE, LATIN SMALL LETTER
83
+ 0x0192: 'f', // WITH HOOK, LATIN SMALL LETTER
84
+ 0x01F5: 'g', // WITH ACUTE, LATIN SMALL LETTER
85
+ 0x011F: 'g', // WITH BREVE, LATIN SMALL LETTER
86
+ 0x01E7: 'g', // WITH CARON, LATIN SMALL LETTER
87
+ 0x0123: 'g', // WITH CEDILLA, LATIN SMALL LETTER
88
+ 0x011D: 'g', // WITH CIRCUMFLEX, LATIN SMALL LETTER
89
+ 0x0121: 'g', // WITH DOT ABOVE, LATIN SMALL LETTER
90
+ 0x0260: 'g', // WITH HOOK, LATIN SMALL LETTER
91
+ 0x1E21: 'g', // WITH MACRON, LATIN SMALL LETTER
92
+ 0x01E5: 'g', // WITH STROKE, LATIN SMALL LETTER
93
+ 0x0261: 'g', // , LATIN SMALL LETTER SCRIPT
94
+ 0x1E2B: 'h', // WITH BREVE BELOW, LATIN SMALL LETTER
95
+ 0x021F: 'h', // WITH CARON, LATIN SMALL LETTER
96
+ 0x1E29: 'h', // WITH CEDILLA, LATIN SMALL LETTER
97
+ 0x0125: 'h', // WITH CIRCUMFLEX, LATIN SMALL LETTER
98
+ 0x1E27: 'h', // WITH DIAERESIS, LATIN SMALL LETTER
99
+ 0x1E23: 'h', // WITH DOT ABOVE, LATIN SMALL LETTER
100
+ 0x1E25: 'h', // WITH DOT BELOW, LATIN SMALL LETTER
101
+ 0x02AE: 'h', // WITH FISHHOOK, LATIN SMALL LETTER TURNED
102
+ 0x0266: 'h', // WITH HOOK, LATIN SMALL LETTER
103
+ 0x1E96: 'h', // WITH LINE BELOW, LATIN SMALL LETTER
104
+ 0x0127: 'h', // WITH STROKE, LATIN SMALL LETTER
105
+ 0x036A: 'h', // , COMBINING LATIN SMALL LETTER
106
+ 0x0265: 'h', // , LATIN SMALL LETTER TURNED
107
+ 0x2095: 'h', // , LATIN SUBSCRIPT SMALL LETTER
108
+ 0x00ED: 'i', // WITH ACUTE, LATIN SMALL LETTER
109
+ 0x012D: 'i', // WITH BREVE, LATIN SMALL LETTER
110
+ 0x01D0: 'i', // WITH CARON, LATIN SMALL LETTER
111
+ 0x00EE: 'i', // WITH CIRCUMFLEX, LATIN SMALL LETTER
112
+ 0x00EF: 'i', // WITH DIAERESIS, LATIN SMALL LETTER
113
+ 0x1ECB: 'i', // WITH DOT BELOW, LATIN SMALL LETTER
114
+ 0x0209: 'i', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
115
+ 0x00EC: 'i', // WITH GRAVE, LATIN SMALL LETTER
116
+ 0x1EC9: 'i', // WITH HOOK ABOVE, LATIN SMALL LETTER
117
+ 0x020B: 'i', // WITH INVERTED BREVE, LATIN SMALL LETTER
118
+ 0x012B: 'i', // WITH MACRON, LATIN SMALL LETTER
119
+ 0x012F: 'i', // WITH OGONEK, LATIN SMALL LETTER
120
+ 0x0268: 'i', // WITH STROKE, LATIN SMALL LETTER
121
+ 0x1E2D: 'i', // WITH TILDE BELOW, LATIN SMALL LETTER
122
+ 0x0129: 'i', // WITH TILDE, LATIN SMALL LETTER
123
+ 0x0365: 'i', // , COMBINING LATIN SMALL LETTER
124
+ 0x0131: 'i', // , LATIN SMALL LETTER DOTLESS
125
+ 0x1D09: 'i', // , LATIN SMALL LETTER TURNED
126
+ 0x1D62: 'i', // , LATIN SUBSCRIPT SMALL LETTER
127
+ 0x2071: 'i', // , SUPERSCRIPT LATIN SMALL LETTER
128
+ 0x01F0: 'j', // WITH CARON, LATIN SMALL LETTER
129
+ 0x0135: 'j', // WITH CIRCUMFLEX, LATIN SMALL LETTER
130
+ 0x029D: 'j', // WITH CROSSED-TAIL, LATIN SMALL LETTER
131
+ 0x0249: 'j', // WITH STROKE, LATIN SMALL LETTER
132
+ 0x025F: 'j', // WITH STROKE, LATIN SMALL LETTER DOTLESS
133
+ 0x0237: 'j', // , LATIN SMALL LETTER DOTLESS
134
+ 0x1E31: 'k', // WITH ACUTE, LATIN SMALL LETTER
135
+ 0x01E9: 'k', // WITH CARON, LATIN SMALL LETTER
136
+ 0x0137: 'k', // WITH CEDILLA, LATIN SMALL LETTER
137
+ 0x1E33: 'k', // WITH DOT BELOW, LATIN SMALL LETTER
138
+ 0x0199: 'k', // WITH HOOK, LATIN SMALL LETTER
139
+ 0x1E35: 'k', // WITH LINE BELOW, LATIN SMALL LETTER
140
+ 0x029E: 'k', // , LATIN SMALL LETTER TURNED
141
+ 0x2096: 'k', // , LATIN SUBSCRIPT SMALL LETTER
142
+ 0x013A: 'l', // WITH ACUTE, LATIN SMALL LETTER
143
+ 0x019A: 'l', // WITH BAR, LATIN SMALL LETTER
144
+ 0x026C: 'l', // WITH BELT, LATIN SMALL LETTER
145
+ 0x013E: 'l', // WITH CARON, LATIN SMALL LETTER
146
+ 0x013C: 'l', // WITH CEDILLA, LATIN SMALL LETTER
147
+ 0x1E3D: 'l', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
148
+ 0x0234: 'l', // WITH CURL, LATIN SMALL LETTER
149
+ 0x1E37: 'l', // WITH DOT BELOW, LATIN SMALL LETTER
150
+ 0x1E3B: 'l', // WITH LINE BELOW, LATIN SMALL LETTER
151
+ 0x0140: 'l', // WITH MIDDLE DOT, LATIN SMALL LETTER
152
+ 0x026B: 'l', // WITH MIDDLE TILDE, LATIN SMALL LETTER
153
+ 0x026D: 'l', // WITH RETROFLEX HOOK, LATIN SMALL LETTER
154
+ 0x0142: 'l', // WITH STROKE, LATIN SMALL LETTER
155
+ 0x2097: 'l', // , LATIN SUBSCRIPT SMALL LETTER
156
+ 0x1E3F: 'm', // WITH ACUTE, LATIN SMALL LETTER
157
+ 0x1E41: 'm', // WITH DOT ABOVE, LATIN SMALL LETTER
158
+ 0x1E43: 'm', // WITH DOT BELOW, LATIN SMALL LETTER
159
+ 0x0271: 'm', // WITH HOOK, LATIN SMALL LETTER
160
+ 0x0270: 'm', // WITH LONG LEG, LATIN SMALL LETTER TURNED
161
+ 0x036B: 'm', // , COMBINING LATIN SMALL LETTER
162
+ 0x1D1F: 'm', // , LATIN SMALL LETTER SIDEWAYS TURNED
163
+ 0x026F: 'm', // , LATIN SMALL LETTER TURNED
164
+ 0x2098: 'm', // , LATIN SUBSCRIPT SMALL LETTER
165
+ 0x0144: 'n', // WITH ACUTE, LATIN SMALL LETTER
166
+ 0x0148: 'n', // WITH CARON, LATIN SMALL LETTER
167
+ 0x0146: 'n', // WITH CEDILLA, LATIN SMALL LETTER
168
+ 0x1E4B: 'n', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
169
+ 0x0235: 'n', // WITH CURL, LATIN SMALL LETTER
170
+ 0x1E45: 'n', // WITH DOT ABOVE, LATIN SMALL LETTER
171
+ 0x1E47: 'n', // WITH DOT BELOW, LATIN SMALL LETTER
172
+ 0x01F9: 'n', // WITH GRAVE, LATIN SMALL LETTER
173
+ 0x0272: 'n', // WITH LEFT HOOK, LATIN SMALL LETTER
174
+ 0x1E49: 'n', // WITH LINE BELOW, LATIN SMALL LETTER
175
+ 0x019E: 'n', // WITH LONG RIGHT LEG, LATIN SMALL LETTER
176
+ 0x0273: 'n', // WITH RETROFLEX HOOK, LATIN SMALL LETTER
177
+ 0x00F1: 'n', // WITH TILDE, LATIN SMALL LETTER
178
+ 0x2099: 'n', // , LATIN SUBSCRIPT SMALL LETTER
179
+ 0x00F3: 'o', // WITH ACUTE, LATIN SMALL LETTER
180
+ 0x014F: 'o', // WITH BREVE, LATIN SMALL LETTER
181
+ 0x01D2: 'o', // WITH CARON, LATIN SMALL LETTER
182
+ 0x00F4: 'o', // WITH CIRCUMFLEX, LATIN SMALL LETTER
183
+ 0x00F6: 'o', // WITH DIAERESIS, LATIN SMALL LETTER
184
+ 0x022F: 'o', // WITH DOT ABOVE, LATIN SMALL LETTER
185
+ 0x1ECD: 'o', // WITH DOT BELOW, LATIN SMALL LETTER
186
+ 0x0151: 'o', // WITH DOUBLE ACUTE, LATIN SMALL LETTER
187
+ 0x020D: 'o', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
188
+ 0x00F2: 'o', // WITH GRAVE, LATIN SMALL LETTER
189
+ 0x1ECF: 'o', // WITH HOOK ABOVE, LATIN SMALL LETTER
190
+ 0x01A1: 'o', // WITH HORN, LATIN SMALL LETTER
191
+ 0x020F: 'o', // WITH INVERTED BREVE, LATIN SMALL LETTER
192
+ 0x014D: 'o', // WITH MACRON, LATIN SMALL LETTER
193
+ 0x01EB: 'o', // WITH OGONEK, LATIN SMALL LETTER
194
+ 0x00F8: 'o', // WITH STROKE, LATIN SMALL LETTER
195
+ 0x1D13: 'o', // WITH STROKE, LATIN SMALL LETTER SIDEWAYS
196
+ 0x00F5: 'o', // WITH TILDE, LATIN SMALL LETTER
197
+ 0x0366: 'o', // , COMBINING LATIN SMALL LETTER
198
+ 0x0275: 'o', // , LATIN SMALL LETTER BARRED
199
+ 0x1D17: 'o', // , LATIN SMALL LETTER BOTTOM HALF
200
+ 0x0254: 'o', // , LATIN SMALL LETTER OPEN
201
+ 0x1D11: 'o', // , LATIN SMALL LETTER SIDEWAYS
202
+ 0x1D12: 'o', // , LATIN SMALL LETTER SIDEWAYS OPEN
203
+ 0x1D16: 'o', // , LATIN SMALL LETTER TOP HALF
204
+ 0x1E55: 'p', // WITH ACUTE, LATIN SMALL LETTER
205
+ 0x1E57: 'p', // WITH DOT ABOVE, LATIN SMALL LETTER
206
+ 0x01A5: 'p', // WITH HOOK, LATIN SMALL LETTER
207
+ 0x209A: 'p', // , LATIN SUBSCRIPT SMALL LETTER
208
+ 0x024B: 'q', // WITH HOOK TAIL, LATIN SMALL LETTER
209
+ 0x02A0: 'q', // WITH HOOK, LATIN SMALL LETTER
210
+ 0x0155: 'r', // WITH ACUTE, LATIN SMALL LETTER
211
+ 0x0159: 'r', // WITH CARON, LATIN SMALL LETTER
212
+ 0x0157: 'r', // WITH CEDILLA, LATIN SMALL LETTER
213
+ 0x1E59: 'r', // WITH DOT ABOVE, LATIN SMALL LETTER
214
+ 0x1E5B: 'r', // WITH DOT BELOW, LATIN SMALL LETTER
215
+ 0x0211: 'r', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
216
+ 0x027E: 'r', // WITH FISHHOOK, LATIN SMALL LETTER
217
+ 0x027F: 'r', // WITH FISHHOOK, LATIN SMALL LETTER REVERSED
218
+ 0x027B: 'r', // WITH HOOK, LATIN SMALL LETTER TURNED
219
+ 0x0213: 'r', // WITH INVERTED BREVE, LATIN SMALL LETTER
220
+ 0x1E5F: 'r', // WITH LINE BELOW, LATIN SMALL LETTER
221
+ 0x027C: 'r', // WITH LONG LEG, LATIN SMALL LETTER
222
+ 0x027A: 'r', // WITH LONG LEG, LATIN SMALL LETTER TURNED
223
+ 0x024D: 'r', // WITH STROKE, LATIN SMALL LETTER
224
+ 0x027D: 'r', // WITH TAIL, LATIN SMALL LETTER
225
+ 0x036C: 'r', // , COMBINING LATIN SMALL LETTER
226
+ 0x0279: 'r', // , LATIN SMALL LETTER TURNED
227
+ 0x1D63: 'r', // , LATIN SUBSCRIPT SMALL LETTER
228
+ 0x015B: 's', // WITH ACUTE, LATIN SMALL LETTER
229
+ 0x0161: 's', // WITH CARON, LATIN SMALL LETTER
230
+ 0x015F: 's', // WITH CEDILLA, LATIN SMALL LETTER
231
+ 0x015D: 's', // WITH CIRCUMFLEX, LATIN SMALL LETTER
232
+ 0x0219: 's', // WITH COMMA BELOW, LATIN SMALL LETTER
233
+ 0x1E61: 's', // WITH DOT ABOVE, LATIN SMALL LETTER
234
+ 0x1E9B: 's', // WITH DOT ABOVE, LATIN SMALL LETTER LONG
235
+ 0x1E63: 's', // WITH DOT BELOW, LATIN SMALL LETTER
236
+ 0x0282: 's', // WITH HOOK, LATIN SMALL LETTER
237
+ 0x023F: 's', // WITH SWASH TAIL, LATIN SMALL LETTER
238
+ 0x017F: 's', // , LATIN SMALL LETTER LONG
239
+ 0x00DF: 's', // , LATIN SMALL LETTER SHARP
240
+ 0x209B: 's', // , LATIN SUBSCRIPT SMALL LETTER
241
+ 0x0165: 't', // WITH CARON, LATIN SMALL LETTER
242
+ 0x0163: 't', // WITH CEDILLA, LATIN SMALL LETTER
243
+ 0x1E71: 't', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
244
+ 0x021B: 't', // WITH COMMA BELOW, LATIN SMALL LETTER
245
+ 0x0236: 't', // WITH CURL, LATIN SMALL LETTER
246
+ 0x1E97: 't', // WITH DIAERESIS, LATIN SMALL LETTER
247
+ 0x1E6B: 't', // WITH DOT ABOVE, LATIN SMALL LETTER
248
+ 0x1E6D: 't', // WITH DOT BELOW, LATIN SMALL LETTER
249
+ 0x01AD: 't', // WITH HOOK, LATIN SMALL LETTER
250
+ 0x1E6F: 't', // WITH LINE BELOW, LATIN SMALL LETTER
251
+ 0x01AB: 't', // WITH PALATAL HOOK, LATIN SMALL LETTER
252
+ 0x0288: 't', // WITH RETROFLEX HOOK, LATIN SMALL LETTER
253
+ 0x0167: 't', // WITH STROKE, LATIN SMALL LETTER
254
+ 0x036D: 't', // , COMBINING LATIN SMALL LETTER
255
+ 0x0287: 't', // , LATIN SMALL LETTER TURNED
256
+ 0x209C: 't', // , LATIN SUBSCRIPT SMALL LETTER
257
+ 0x0289: 'u', // BAR, LATIN SMALL LETTER
258
+ 0x00FA: 'u', // WITH ACUTE, LATIN SMALL LETTER
259
+ 0x016D: 'u', // WITH BREVE, LATIN SMALL LETTER
260
+ 0x01D4: 'u', // WITH CARON, LATIN SMALL LETTER
261
+ 0x1E77: 'u', // WITH CIRCUMFLEX BELOW, LATIN SMALL LETTER
262
+ 0x00FB: 'u', // WITH CIRCUMFLEX, LATIN SMALL LETTER
263
+ 0x1E73: 'u', // WITH DIAERESIS BELOW, LATIN SMALL LETTER
264
+ 0x00FC: 'u', // WITH DIAERESIS, LATIN SMALL LETTER
265
+ 0x1EE5: 'u', // WITH DOT BELOW, LATIN SMALL LETTER
266
+ 0x0171: 'u', // WITH DOUBLE ACUTE, LATIN SMALL LETTER
267
+ 0x0215: 'u', // WITH DOUBLE GRAVE, LATIN SMALL LETTER
268
+ 0x00F9: 'u', // WITH GRAVE, LATIN SMALL LETTER
269
+ 0x1EE7: 'u', // WITH HOOK ABOVE, LATIN SMALL LETTER
270
+ 0x01B0: 'u', // WITH HORN, LATIN SMALL LETTER
271
+ 0x0217: 'u', // WITH INVERTED BREVE, LATIN SMALL LETTER
272
+ 0x016B: 'u', // WITH MACRON, LATIN SMALL LETTER
273
+ 0x0173: 'u', // WITH OGONEK, LATIN SMALL LETTER
274
+ 0x016F: 'u', // WITH RING ABOVE, LATIN SMALL LETTER
275
+ 0x1E75: 'u', // WITH TILDE BELOW, LATIN SMALL LETTER
276
+ 0x0169: 'u', // WITH TILDE, LATIN SMALL LETTER
277
+ 0x0367: 'u', // , COMBINING LATIN SMALL LETTER
278
+ 0x1D1D: 'u', // , LATIN SMALL LETTER SIDEWAYS
279
+ 0x1D1E: 'u', // , LATIN SMALL LETTER SIDEWAYS DIAERESIZED
280
+ 0x1D64: 'u', // , LATIN SUBSCRIPT SMALL LETTER
281
+ 0x1E7F: 'v', // WITH DOT BELOW, LATIN SMALL LETTER
282
+ 0x028B: 'v', // WITH HOOK, LATIN SMALL LETTER
283
+ 0x1E7D: 'v', // WITH TILDE, LATIN SMALL LETTER
284
+ 0x036E: 'v', // , COMBINING LATIN SMALL LETTER
285
+ 0x028C: 'v', // , LATIN SMALL LETTER TURNED
286
+ 0x1D65: 'v', // , LATIN SUBSCRIPT SMALL LETTER
287
+ 0x1E83: 'w', // WITH ACUTE, LATIN SMALL LETTER
288
+ 0x0175: 'w', // WITH CIRCUMFLEX, LATIN SMALL LETTER
289
+ 0x1E85: 'w', // WITH DIAERESIS, LATIN SMALL LETTER
290
+ 0x1E87: 'w', // WITH DOT ABOVE, LATIN SMALL LETTER
291
+ 0x1E89: 'w', // WITH DOT BELOW, LATIN SMALL LETTER
292
+ 0x1E81: 'w', // WITH GRAVE, LATIN SMALL LETTER
293
+ 0x1E98: 'w', // WITH RING ABOVE, LATIN SMALL LETTER
294
+ 0x028D: 'w', // , LATIN SMALL LETTER TURNED
295
+ 0x1E8D: 'x', // WITH DIAERESIS, LATIN SMALL LETTER
296
+ 0x1E8B: 'x', // WITH DOT ABOVE, LATIN SMALL LETTER
297
+ 0x036F: 'x', // , COMBINING LATIN SMALL LETTER
298
+ 0x00FD: 'y', // WITH ACUTE, LATIN SMALL LETTER
299
+ 0x0177: 'y', // WITH CIRCUMFLEX, LATIN SMALL LETTER
300
+ 0x00FF: 'y', // WITH DIAERESIS, LATIN SMALL LETTER
301
+ 0x1E8F: 'y', // WITH DOT ABOVE, LATIN SMALL LETTER
302
+ 0x1EF5: 'y', // WITH DOT BELOW, LATIN SMALL LETTER
303
+ 0x1EF3: 'y', // WITH GRAVE, LATIN SMALL LETTER
304
+ 0x1EF7: 'y', // WITH HOOK ABOVE, LATIN SMALL LETTER
305
+ 0x01B4: 'y', // WITH HOOK, LATIN SMALL LETTER
306
+ 0x0233: 'y', // WITH MACRON, LATIN SMALL LETTER
307
+ 0x1E99: 'y', // WITH RING ABOVE, LATIN SMALL LETTER
308
+ 0x024F: 'y', // WITH STROKE, LATIN SMALL LETTER
309
+ 0x1EF9: 'y', // WITH TILDE, LATIN SMALL LETTER
310
+ 0x028E: 'y', // , LATIN SMALL LETTER TURNED
311
+ 0x017A: 'z', // WITH ACUTE, LATIN SMALL LETTER
312
+ 0x017E: 'z', // WITH CARON, LATIN SMALL LETTER
313
+ 0x1E91: 'z', // WITH CIRCUMFLEX, LATIN SMALL LETTER
314
+ 0x0291: 'z', // WITH CURL, LATIN SMALL LETTER
315
+ 0x017C: 'z', // WITH DOT ABOVE, LATIN SMALL LETTER
316
+ 0x1E93: 'z', // WITH DOT BELOW, LATIN SMALL LETTER
317
+ 0x0225: 'z', // WITH HOOK, LATIN SMALL LETTER
318
+ 0x1E95: 'z', // WITH LINE BELOW, LATIN SMALL LETTER
319
+ 0x0290: 'z', // WITH RETROFLEX HOOK, LATIN SMALL LETTER
320
+ 0x01B6: 'z', // WITH STROKE, LATIN SMALL LETTER
321
+ 0x0240: 'z', // WITH SWASH TAIL, LATIN SMALL LETTER
322
+ 0x0251: 'a', // , latin small letter script
323
+ 0x00C1: 'A', // WITH ACUTE, LATIN CAPITAL LETTER
324
+ 0x00C2: 'A', // WITH CIRCUMFLEX, LATIN CAPITAL LETTER
325
+ 0x00C4: 'A', // WITH DIAERESIS, LATIN CAPITAL LETTER
326
+ 0x00C0: 'A', // WITH GRAVE, LATIN CAPITAL LETTER
327
+ 0x00C5: 'A', // WITH RING ABOVE, LATIN CAPITAL LETTER
328
+ 0x023A: 'A', // WITH STROKE, LATIN CAPITAL LETTER
329
+ 0x00C3: 'A', // WITH TILDE, LATIN CAPITAL LETTER
330
+ 0x1D00: 'A', // , LATIN LETTER SMALL CAPITAL
331
+ 0x0181: 'B', // WITH HOOK, LATIN CAPITAL LETTER
332
+ 0x0243: 'B', // WITH STROKE, LATIN CAPITAL LETTER
333
+ 0x0299: 'B', // , LATIN LETTER SMALL CAPITAL
334
+ 0x1D03: 'B', // , LATIN LETTER SMALL CAPITAL BARRED
335
+ 0x00C7: 'C', // WITH CEDILLA, LATIN CAPITAL LETTER
336
+ 0x023B: 'C', // WITH STROKE, LATIN CAPITAL LETTER
337
+ 0x1D04: 'C', // , LATIN LETTER SMALL CAPITAL
338
+ 0x018A: 'D', // WITH HOOK, LATIN CAPITAL LETTER
339
+ 0x0189: 'D', // , LATIN CAPITAL LETTER AFRICAN
340
+ 0x1D05: 'D', // , LATIN LETTER SMALL CAPITAL
341
+ 0x00C9: 'E', // WITH ACUTE, LATIN CAPITAL LETTER
342
+ 0x00CA: 'E', // WITH CIRCUMFLEX, LATIN CAPITAL LETTER
343
+ 0x00CB: 'E', // WITH DIAERESIS, LATIN CAPITAL LETTER
344
+ 0x00C8: 'E', // WITH GRAVE, LATIN CAPITAL LETTER
345
+ 0x0246: 'E', // WITH STROKE, LATIN CAPITAL LETTER
346
+ 0x0190: 'E', // , LATIN CAPITAL LETTER OPEN
347
+ 0x018E: 'E', // , LATIN CAPITAL LETTER REVERSED
348
+ 0x1D07: 'E', // , LATIN LETTER SMALL CAPITAL
349
+ 0x0193: 'G', // WITH HOOK, LATIN CAPITAL LETTER
350
+ 0x029B: 'G', // WITH HOOK, LATIN LETTER SMALL CAPITAL
351
+ 0x0262: 'G', // , LATIN LETTER SMALL CAPITAL
352
+ 0x029C: 'H', // , LATIN LETTER SMALL CAPITAL
353
+ 0x00CD: 'I', // WITH ACUTE, LATIN CAPITAL LETTER
354
+ 0x00CE: 'I', // WITH CIRCUMFLEX, LATIN CAPITAL LETTER
355
+ 0x00CF: 'I', // WITH DIAERESIS, LATIN CAPITAL LETTER
356
+ 0x0130: 'I', // WITH DOT ABOVE, LATIN CAPITAL LETTER
357
+ 0x00CC: 'I', // WITH GRAVE, LATIN CAPITAL LETTER
358
+ 0x0197: 'I', // WITH STROKE, LATIN CAPITAL LETTER
359
+ 0x026A: 'I', // , LATIN LETTER SMALL CAPITAL
360
+ 0x0248: 'J', // WITH STROKE, LATIN CAPITAL LETTER
361
+ 0x1D0A: 'J', // , LATIN LETTER SMALL CAPITAL
362
+ 0x1D0B: 'K', // , LATIN LETTER SMALL CAPITAL
363
+ 0x023D: 'L', // WITH BAR, LATIN CAPITAL LETTER
364
+ 0x1D0C: 'L', // WITH STROKE, LATIN LETTER SMALL CAPITAL
365
+ 0x029F: 'L', // , LATIN LETTER SMALL CAPITAL
366
+ 0x019C: 'M', // , LATIN CAPITAL LETTER TURNED
367
+ 0x1D0D: 'M', // , LATIN LETTER SMALL CAPITAL
368
+ 0x019D: 'N', // WITH LEFT HOOK, LATIN CAPITAL LETTER
369
+ 0x0220: 'N', // WITH LONG RIGHT LEG, LATIN CAPITAL LETTER
370
+ 0x00D1: 'N', // WITH TILDE, LATIN CAPITAL LETTER
371
+ 0x0274: 'N', // , LATIN LETTER SMALL CAPITAL
372
+ 0x1D0E: 'N', // , LATIN LETTER SMALL CAPITAL REVERSED
373
+ 0x00D3: 'O', // WITH ACUTE, LATIN CAPITAL LETTER
374
+ 0x00D4: 'O', // WITH CIRCUMFLEX, LATIN CAPITAL LETTER
375
+ 0x00D6: 'O', // WITH DIAERESIS, LATIN CAPITAL LETTER
376
+ 0x00D2: 'O', // WITH GRAVE, LATIN CAPITAL LETTER
377
+ 0x019F: 'O', // WITH MIDDLE TILDE, LATIN CAPITAL LETTER
378
+ 0x00D8: 'O', // WITH STROKE, LATIN CAPITAL LETTER
379
+ 0x00D5: 'O', // WITH TILDE, LATIN CAPITAL LETTER
380
+ 0x0186: 'O', // , LATIN CAPITAL LETTER OPEN
381
+ 0x1D0F: 'O', // , LATIN LETTER SMALL CAPITAL
382
+ 0x1D10: 'O', // , LATIN LETTER SMALL CAPITAL OPEN
383
+ 0x1D18: 'P', // , LATIN LETTER SMALL CAPITAL
384
+ 0x024A: 'Q', // WITH HOOK TAIL, LATIN CAPITAL LETTER SMALL
385
+ 0x024C: 'R', // WITH STROKE, LATIN CAPITAL LETTER
386
+ 0x0280: 'R', // , LATIN LETTER SMALL CAPITAL
387
+ 0x0281: 'R', // , LATIN LETTER SMALL CAPITAL INVERTED
388
+ 0x1D19: 'R', // , LATIN LETTER SMALL CAPITAL REVERSED
389
+ 0x1D1A: 'R', // , LATIN LETTER SMALL CAPITAL TURNED
390
+ 0x023E: 'T', // WITH DIAGONAL STROKE, LATIN CAPITAL LETTER
391
+ 0x01AE: 'T', // WITH RETROFLEX HOOK, LATIN CAPITAL LETTER
392
+ 0x1D1B: 'T', // , LATIN LETTER SMALL CAPITAL
393
+ 0x0244: 'U', // BAR, LATIN CAPITAL LETTER
394
+ 0x00DA: 'U', // WITH ACUTE, LATIN CAPITAL LETTER
395
+ 0x00DB: 'U', // WITH CIRCUMFLEX, LATIN CAPITAL LETTER
396
+ 0x00DC: 'U', // WITH DIAERESIS, LATIN CAPITAL LETTER
397
+ 0x00D9: 'U', // WITH GRAVE, LATIN CAPITAL LETTER
398
+ 0x1D1C: 'U', // , LATIN LETTER SMALL CAPITAL
399
+ 0x01B2: 'V', // WITH HOOK, LATIN CAPITAL LETTER
400
+ 0x0245: 'V', // , LATIN CAPITAL LETTER TURNED
401
+ 0x1D20: 'V', // , LATIN LETTER SMALL CAPITAL
402
+ 0x1D21: 'W', // , LATIN LETTER SMALL CAPITAL
403
+ 0x00DD: 'Y', // WITH ACUTE, LATIN CAPITAL LETTER
404
+ 0x0178: 'Y', // WITH DIAERESIS, LATIN CAPITAL LETTER
405
+ 0x024E: 'Y', // WITH STROKE, LATIN CAPITAL LETTER
406
+ 0x028F: 'Y', // , LATIN LETTER SMALL CAPITAL
407
+ 0x1D22: 'Z', // , LATIN LETTER SMALL CAPITAL
408
+
409
+ 'Ắ': 'A',
410
+ 'Ấ': 'A',
411
+ 'Ằ': 'A',
412
+ 'Ầ': 'A',
413
+ 'Ẳ': 'A',
414
+ 'Ẩ': 'A',
415
+ 'Ẵ': 'A',
416
+ 'Ẫ': 'A',
417
+ 'Ặ': 'A',
418
+ 'Ậ': 'A',
419
+
420
+ 'ắ': 'a',
421
+ 'ấ': 'a',
422
+ 'ằ': 'a',
423
+ 'ầ': 'a',
424
+ 'ẳ': 'a',
425
+ 'ẩ': 'a',
426
+ 'ẵ': 'a',
427
+ 'ẫ': 'a',
428
+ 'ặ': 'a',
429
+ 'ậ': 'a',
430
+
431
+ 'Ế': 'E',
432
+ 'Ề': 'E',
433
+ 'Ể': 'E',
434
+ 'Ễ': 'E',
435
+ 'Ệ': 'E',
436
+
437
+ 'ế': 'e',
438
+ 'ề': 'e',
439
+ 'ể': 'e',
440
+ 'ễ': 'e',
441
+ 'ệ': 'e',
442
+
443
+ 'Ố': 'O',
444
+ 'Ớ': 'O',
445
+ 'Ồ': 'O',
446
+ 'Ờ': 'O',
447
+ 'Ổ': 'O',
448
+ 'Ở': 'O',
449
+ 'Ỗ': 'O',
450
+ 'Ỡ': 'O',
451
+ 'Ộ': 'O',
452
+ 'Ợ': 'O',
453
+
454
+ 'ố': 'o',
455
+ 'ớ': 'o',
456
+ 'ồ': 'o',
457
+ 'ờ': 'o',
458
+ 'ổ': 'o',
459
+ 'ở': 'o',
460
+ 'ỗ': 'o',
461
+ 'ỡ': 'o',
462
+ 'ộ': 'o',
463
+ 'ợ': 'o',
464
+
465
+ 'Ứ': 'U',
466
+ 'Ừ': 'U',
467
+ 'Ử': 'U',
468
+ 'Ữ': 'U',
469
+ 'Ự': 'U',
470
+
471
+ 'ứ': 'u',
472
+ 'ừ': 'u',
473
+ 'ử': 'u',
474
+ 'ữ': 'u',
475
+ 'ự': 'u',
476
+ }
477
+
478
+ // NormalizeRunes normalizes latin script letters
479
+ func NormalizeRunes(runes []rune) []rune {
480
+ ret := make([]rune, len(runes))
481
+ copy(ret, runes)
482
+ for idx, r := range runes {
483
+ if r < 0x00C0 || r > 0x2184 {
484
+ continue
485
+ }
486
+ n := normalized[r]
487
+ if n > 0 {
488
+ ret[idx] = normalized[r]
489
+ }
490
+ }
491
+ return ret
492
+ }