My build of nnn with minor changes
 
 
 
 
 
 

507 line
17 KiB

  1. #pragma once
  2. #if defined(ICONS)
  3. #include "icons-in-terminal.h"
  4. #elif defined(NERD)
  5. #include "icons-nerdfont.h"
  6. #endif
  7. struct icon_pair {
  8. const char *match;
  9. const char *icon;
  10. /*
  11. * Hex xterm 256 color code, 0 to follow file specific (if any)
  12. * Codes: https://jonasjacek.github.io/colors/
  13. * Spectrum sorted: https://upload.wikimedia.org/wikipedia/commons/1/15/Xterm_256color_chart.svg
  14. */
  15. const unsigned char color;
  16. };
  17. /*
  18. * Define a string to be printed before and after the icon
  19. * Adjust if the icons are not printed properly
  20. */
  21. #define ICON_PADDING_LEFT ""
  22. #define ICON_PADDING_RIGHT " "
  23. #define COLOR_VIDEO 93 /* Purple */
  24. #define COLOR_AUDIO 220 /* Gold1 */
  25. #define COLOR_IMAGE 82 /* Chartreuse2 */
  26. #define COLOR_DOCS 202 /* OrangeRed1 */
  27. #define COLOR_ARCHIVE 209 /* Salmon1 */
  28. #define COLOR_C 81 /* SteelBlue1 */
  29. #define COLOR_JAVA 32 /* DeepSkyBlue3 */
  30. #define COLOR_JAVASCRIPT 47 /* SpringGreen2 */
  31. #define COLOR_REACT 39 /* DeepSkyBlue1 */
  32. #define COLOR_CSS 199 /* DeepPink1 */
  33. #define COLOR_PYTHON 227 /* LightGoldenrod1 */
  34. #define COLOR_LUA 19 /* LightGoldenrod1 */
  35. #define COLOR_DOCUMENT 15 /* WHITE */
  36. #define COLOR_FSHARP 31 /* DeepSkyBlue3 */
  37. #define COLOR_RUBY 160 /* Red3 */
  38. #define COLOR_SCALA 196 /* Red1 */
  39. #define COLOR_VIM 28 /* Green4 */
  40. /*
  41. * Using symbols defined in icons-in-terminal.h, or even using icons-in-terminal is not necessary.
  42. * You can use whatever pathched font you like. You just have to put the desired icon as a string.
  43. * If you are using icons-in-terminal the creator recommends that you do use the symbols in the generated header.
  44. */
  45. #if defined(ICONS)
  46. static const struct icon_pair dir_icon = {"", FA_FOLDER, 0};
  47. static const struct icon_pair file_icon = {"", FA_FILE_O, 0};
  48. static const struct icon_pair exec_icon = {"", FA_COG, 0};
  49. #elif defined(NERD)
  50. static const struct icon_pair dir_icon = {"", ICON_DIRECTORY, 0};
  51. static const struct icon_pair file_icon = {"", ICON_FILE, 0};
  52. static const struct icon_pair exec_icon = {"", ICON_EXEC, 0};
  53. #endif
  54. /* All entries are case-insensitive */
  55. static const struct icon_pair icons_name[] = {
  56. #if defined(ICONS)
  57. {".git", FA_GIT, 0},
  58. {"Desktop", FA_DESKTOP, 0},
  59. {"Documents", FA_BRIEFCASE, 0},
  60. {"Downloads", FA_DOWNLOAD, 0},
  61. {"Music", FA_MUSIC, 0},
  62. {"Pictures", MD_CAMERA_ALT, 0},
  63. {"Public", FA_INBOX, 0},
  64. {"Templates", FA_PAPERCLIP, 0},
  65. {"Videos", FA_FILM, 0},
  66. {"CHANGELOG", FA_HISTORY, COLOR_DOCS},
  67. {"configure", FILE_CONFIG, 0},
  68. {"License", FA_COPYRIGHT, COLOR_DOCS},
  69. {"Makefile", FILE_CMAKE, 0},
  70. #elif defined(NERD)
  71. {".git", ICON_GIT, 0},
  72. {"Desktop", ICON_DESKTOP, 0},
  73. {"Documents", ICON_BRIEFCASE, 0},
  74. {"Downloads", ICON_DOWNLOADS, 0},
  75. {"Music", ICON_MUSIC, 0},
  76. {"Pictures", ICON_PICTURES, 0},
  77. {"Public", ICON_PUBLIC, 0},
  78. {"Templates", ICON_TEMPLATES, 0},
  79. {"Videos", ICON_VIDEOS, 0},
  80. {"CHANGELOG", ICON_CHANGELOG, COLOR_DOCS},
  81. {"configure", ICON_CONFIGURE, 0},
  82. {"License", ICON_LICENSE, COLOR_DOCS},
  83. {"Makefile", ICON_MAKEFILE, 0},
  84. #endif
  85. };
  86. /*
  87. * New entries should bu added such that the first character of the extension is in the correct group .
  88. * This is done for performance reason so that the correct icon can be found faster.
  89. * All entries are case-insensitive
  90. */
  91. static const struct icon_pair icons_ext[] = {
  92. #if defined(ICONS)
  93. /* Numbers */
  94. {"1", FILE_MANPAGE, COLOR_DOCS},
  95. {"7z", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  96. /* A */
  97. {"a", FILE_MANPAGE, 0},
  98. {"apk", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  99. {"asm", FILE_NASM, 0},
  100. {"aup", FA_FILE_AUDIO_O, COLOR_AUDIO},
  101. {"avi", FA_FILE_MOVIE_O, COLOR_VIDEO},
  102. /* B */
  103. {"bat", MFIZZ_SCRIPT, 0},
  104. {"bin", OCT_FILE_BINARY, 0},
  105. {"bmp", FA_FILE_IMAGE_O, COLOR_IMAGE},
  106. {"bz2", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  107. /* C */
  108. {"c", MFIZZ_C, 0},
  109. {"c++", MFIZZ_CPLUSPLUS, 0},
  110. {"cab", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  111. {"cbr", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  112. {"cbz", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  113. {"cc", MFIZZ_CPLUSPLUS, 0},
  114. {"class", MFIZZ_JAVA, 0},
  115. {"clj", MFIZZ_CLOJURE, 0},
  116. {"cljc", MFIZZ_CLOJURE, 0},
  117. {"cljs", MFIZZ_CLOJURE, 0},
  118. {"cmake", FILE_CMAKE, 0},
  119. {"coffee", MFIZZ_COFFEE_BEAN, 0},
  120. {"conf", FA_COGS, 0},
  121. {"cpio", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  122. {"cpp", MFIZZ_CPLUSPLUS, 0},
  123. {"css", MFIZZ_CSS3, 0},
  124. {"cue", FA_FILE_AUDIO_O, COLOR_AUDIO},
  125. {"cvs", FA_COGS, 0},
  126. {"cxx", MFIZZ_CPLUSPLUS, 0},
  127. /* D */
  128. {"db", MFIZZ_DATABASE_ALT2, 0},
  129. {"deb", MFIZZ_DEBIAN, COLOR_ARCHIVE},
  130. {"diff", FILE_DIFF, 0},
  131. {"dll", FILE_MANPAGE, 0},
  132. {"doc", FILE_WORD, 0},
  133. {"docx", FILE_WORD, 0},
  134. /* E */
  135. {"ejs", FA_FILE_CODE_O, 0},
  136. {"elf", FA_LINUX, 0},
  137. {"epub", FA_FILE_PDF_O, COLOR_DOCS},
  138. {"exe", FA_WINDOWS, 0},
  139. /* F */
  140. {"f#", DEV_FSHARP, 0},
  141. {"flac", FA_FILE_AUDIO_O, COLOR_AUDIO},
  142. {"flv", FA_FILE_MOVIE_O, COLOR_VIDEO},
  143. {"fs", DEV_FSHARP, 0},
  144. {"fsi", DEV_FSHARP, 0},
  145. {"fsscript", DEV_FSHARP, 0},
  146. {"fsx", DEV_FSHARP, 0},
  147. /* G */
  148. {"gem", FA_FILE_ARCHIVE_O, 0},
  149. {"gif", FA_FILE_IMAGE_O, COLOR_IMAGE},
  150. {"go", MFIZZ_GO, 0},
  151. {"gz", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  152. {"gzip", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  153. /* H */
  154. {"h", MFIZZ_C, 0},
  155. {"hh", MFIZZ_CPLUSPLUS, 0},
  156. {"htaccess", FA_COGS, 0},
  157. {"htpasswd", FA_COGS, 0},
  158. {"htm", FA_FILE_CODE_O, 0},
  159. {"html", FA_FILE_CODE_O, 0},
  160. {"hxx", MFIZZ_CPLUSPLUS, 0},
  161. /* I */
  162. {"ico", FA_FILE_IMAGE_O, COLOR_IMAGE},
  163. {"img", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  164. {"ini", FA_COGS, 0},
  165. {"iso", LINEA_MUSIC_CD, COLOR_ARCHIVE},
  166. /* J */
  167. {"jar", MFIZZ_JAVA, 0},
  168. {"java", MFIZZ_JAVA, 0},
  169. {"jl", FA_COGS, 0},
  170. {"jpeg", FA_FILE_IMAGE_O, COLOR_IMAGE},
  171. {"jpg", FA_FILE_IMAGE_O, COLOR_IMAGE},
  172. {"js", DEV_JAVASCRIPT_BADGE, 0},
  173. {"json", MFIZZ_JAVASCRIPT, 0},
  174. {"jsx", FILE_JSX, 0},
  175. /* K */
  176. /* L */
  177. {"lha", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  178. {"log", FA_FILE_TEXT_O, 0},
  179. {"lua", FILE_LUA, 0},
  180. {"lzh", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  181. {"lzma", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  182. /* M */
  183. {"m4a", FA_FILE_AUDIO_O, COLOR_AUDIO},
  184. {"m4v", FA_FILE_MOVIE_O, COLOR_VIDEO},
  185. {"markdown", DEV_MARKDOWN, COLOR_DOCS},
  186. {"md", DEV_MARKDOWN, COLOR_DOCS},
  187. {"mk", FILE_CMAKE, 0},
  188. {"mkv", FA_FILE_MOVIE_O, COLOR_VIDEO},
  189. {"mov", FA_FILE_MOVIE_O, COLOR_VIDEO},
  190. {"mp3", FA_FILE_AUDIO_O, COLOR_AUDIO},
  191. {"mp4", FA_FILE_MOVIE_O, COLOR_VIDEO},
  192. {"mpeg", FA_FILE_MOVIE_O, COLOR_VIDEO},
  193. {"mpg", FA_FILE_MOVIE_O, COLOR_VIDEO},
  194. {"msi", FA_WINDOWS, 0},
  195. /* N */
  196. /* O */
  197. {"o", FILE_MANPAGE, 0},
  198. {"ogg", FA_FILE_AUDIO_O, COLOR_AUDIO},
  199. {"opdownload", FA_DOWNLOAD, 0},
  200. {"out", FA_LINUX, 0},
  201. /* P */
  202. {"part", FA_DOWNLOAD, 0},
  203. {"patch", FILE_PATCH, 0},
  204. {"pdf", FA_FILE_PDF_O, COLOR_DOCS},
  205. {"php", MFIZZ_PHP, 0},
  206. {"png", FA_FILE_IMAGE_O, COLOR_IMAGE},
  207. {"ppt", FILE_POWERPOINT, 0},
  208. {"pptx", FILE_POWERPOINT, 0},
  209. {"psb", DEV_PHOTOSHOP, 0},
  210. {"psd", DEV_PHOTOSHOP, 0},
  211. {"py", MFIZZ_PYTHON, 0},
  212. {"pyc", MFIZZ_PYTHON, 0},
  213. {"pyd", MFIZZ_PYTHON, 0},
  214. {"pyo", MFIZZ_PYTHON, 0},
  215. /* Q */
  216. /* R */
  217. {"rar", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  218. {"rc", FA_COGS, 0},
  219. {"rom", FA_LOCK, 0},
  220. {"rpm", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  221. {"rss", FA_RSS_SQUARE, 0},
  222. {"rtf", FA_FILE_PDF_O, 0},
  223. /* S */
  224. {"so", FILE_MANPAGE, 0},
  225. {"scala", MFIZZ_SCALA, 0},
  226. {"sh", MFIZZ_SCRIPT, 0},
  227. {"slim", FA_FILE_CODE_O, 0},
  228. {"sln", DEV_VISUALSTUDIO, 0},
  229. {"sql", MFIZZ_MYSQL, 0},
  230. {"srt", FA_COMMENTS_O, 0},
  231. {"sub", FA_COMMENTS_O, 0},
  232. {"svg", FA_FILE_IMAGE_O, COLOR_IMAGE},
  233. /* T */
  234. {"tar", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  235. {"tex", FILE_TEX, 0},
  236. {"tgz", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  237. {"ts", FILE_TS, 0},
  238. {"tsx", FILE_TSX, 0},
  239. {"txt", FA_FILE_TEXT_O, 0},
  240. {"txz", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  241. /* U */
  242. /* V */
  243. {"vid", FA_FILE_MOVIE_O, COLOR_VIDEO},
  244. {"vim", DEV_VIM, 0},
  245. {"vimrc", DEV_VIM, 0},
  246. {"vtt", FA_COMMENTS_O, 0},
  247. /* W */
  248. {"wav", FA_FILE_AUDIO_O, COLOR_AUDIO},
  249. {"webm", FA_FILE_MOVIE_O, COLOR_VIDEO},
  250. {"wma", FA_FILE_AUDIO_O, COLOR_AUDIO},
  251. {"wmv", FA_FILE_MOVIE_O, COLOR_VIDEO},
  252. /* X */
  253. {"xbps", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  254. {"xhtml", FA_FILE_CODE_O, 0},
  255. {"xls", FILE_EXCEL, 0},
  256. {"xlsx", FILE_EXCEL, 0},
  257. {"xml", FA_FILE_CODE_O, 0},
  258. {"xz", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  259. /* Y */
  260. {"yaml", FA_COGS, 0},
  261. {"yml", FA_COGS, 0},
  262. /* Z */
  263. {"zip", FA_FILE_ARCHIVE_O, COLOR_ARCHIVE},
  264. /* Other */
  265. #elif defined(NERD)
  266. /* Numbers */
  267. {"1", ICON_EXT_1, COLOR_DOCS},
  268. {"7z", ICON_EXT_7Z, COLOR_ARCHIVE},
  269. /* A */
  270. {"a", ICON_EXT_A, 0},
  271. {"apk", ICON_EXT_APK, COLOR_ARCHIVE},
  272. {"asm", ICON_EXT_ASM, 0},
  273. {"aup", ICON_EXT_AUP, COLOR_AUDIO},
  274. {"avi", ICON_EXT_AVI, COLOR_VIDEO},
  275. /* B */
  276. {"bat", ICON_EXT_BAT, 0},
  277. {"bin", ICON_EXT_BIN, 0},
  278. {"bmp", ICON_EXT_BMP, COLOR_IMAGE},
  279. {"bz2", ICON_EXT_BZ2, COLOR_ARCHIVE},
  280. /* C */
  281. {"c", ICON_EXT_C, COLOR_C},
  282. {"c++", ICON_EXT_CPLUSPLUS, COLOR_C},
  283. {"cab", ICON_EXT_CAB, COLOR_ARCHIVE},
  284. {"cbr", ICON_EXT_CBR, COLOR_ARCHIVE},
  285. {"cbz", ICON_EXT_CBZ, COLOR_ARCHIVE},
  286. {"cc", ICON_EXT_CC, COLOR_C},
  287. {"class", ICON_EXT_CLASS, COLOR_JAVA},
  288. {"clj", ICON_EXT_CLJ, 0},
  289. {"cljc", ICON_EXT_CLJC, 0},
  290. {"cljs", ICON_EXT_CLJS, 0},
  291. {"cmake", ICON_EXT_CMAKE, 0},
  292. {"coffee", ICON_EXT_COFFEE, 0},
  293. {"conf", ICON_EXT_CONF, 0},
  294. {"cpio", ICON_EXT_CPIO, COLOR_ARCHIVE},
  295. {"cpp", ICON_EXT_CPP, 0},
  296. {"css", ICON_EXT_CSS, COLOR_CSS},
  297. {"cue", ICON_EXT_CUE, COLOR_AUDIO},
  298. {"cvs", ICON_EXT_CVS, 0},
  299. {"cxx", ICON_EXT_CXX, COLOR_C},
  300. /* D */
  301. {"db", ICON_EXT_DB, 0},
  302. {"deb", ICON_EXT_DEB, COLOR_ARCHIVE},
  303. {"diff", ICON_EXT_DIFF, 0},
  304. {"dll", ICON_EXT_DLL, 0},
  305. {"doc", ICON_EXT_DOC, COLOR_DOCUMENT},
  306. {"docx", ICON_EXT_DOCX, COLOR_DOCUMENT},
  307. /* E */
  308. {"ejs", ICON_EXT_EJS, COLOR_JAVASCRIPT},
  309. {"elf", ICON_EXT_ELF, 0},
  310. {"epub", ICON_EXT_EPUB, COLOR_DOCS},
  311. {"exe", ICON_EXT_EXE, 0},
  312. /* F */
  313. {"f#", ICON_EXT_FSHARP, COLOR_FSHARP},
  314. {"flac", ICON_EXT_FLAC, COLOR_AUDIO},
  315. {"flv", ICON_EXT_FLV, COLOR_VIDEO},
  316. {"fs", ICON_EXT_FS, COLOR_FSHARP},
  317. {"fsi", ICON_EXT_FSI, COLOR_FSHARP},
  318. {"fsscript", ICON_EXT_FSSCRIPT, COLOR_FSHARP},
  319. {"fsx", ICON_EXT_FSX, COLOR_FSHARP},
  320. /* G */
  321. {"gem", ICON_EXT_GEM, COLOR_RUBY},
  322. {"gif", ICON_EXT_GIF, COLOR_IMAGE},
  323. {"go", ICON_EXT_GO, 0},
  324. {"gz", ICON_EXT_GZ, COLOR_ARCHIVE},
  325. {"gzip", ICON_EXT_GZIP, COLOR_ARCHIVE},
  326. /* H */
  327. {"h", ICON_EXT_H, COLOR_C},
  328. {"hh", ICON_EXT_HH, COLOR_C},
  329. {"htaccess", ICON_EXT_HTACCESS, 0},
  330. {"htpasswd", ICON_EXT_HTPASSWD, 0},
  331. {"htm", ICON_EXT_HTM, 0},
  332. {"html", ICON_EXT_HTML, 0},
  333. {"hxx", ICON_EXT_HXX, COLOR_C},
  334. /* I */
  335. {"ico", ICON_EXT_ICO, COLOR_IMAGE},
  336. {"img", ICON_EXT_IMG, COLOR_ARCHIVE},
  337. {"ini", ICON_EXT_INI, 0},
  338. {"iso", ICON_EXT_ISO, COLOR_ARCHIVE},
  339. /* J */
  340. {"jar", ICON_EXT_JAR, COLOR_JAVA},
  341. {"java", ICON_EXT_JAVA, COLOR_JAVA},
  342. {"jl", ICON_EXT_JL, 0},
  343. {"jpeg", ICON_EXT_JPEG, COLOR_IMAGE},
  344. {"jpg", ICON_EXT_JPG, COLOR_IMAGE},
  345. {"js", ICON_EXT_JS, COLOR_JAVASCRIPT},
  346. {"json", ICON_EXT_JSON, COLOR_JAVASCRIPT},
  347. {"jsx", ICON_EXT_JSX, COLOR_REACT},
  348. /* K */
  349. /* L */
  350. {"lha", ICON_EXT_LHA, COLOR_ARCHIVE},
  351. {"log", ICON_EXT_LOG, 0},
  352. {"lua", ICON_EXT_LUA, 0},
  353. {"lzh", ICON_EXT_LZH, COLOR_ARCHIVE},
  354. {"lzma", ICON_EXT_LZMA, COLOR_ARCHIVE},
  355. /* M */
  356. {"m4a", ICON_EXT_M4A, COLOR_AUDIO},
  357. {"m4v", ICON_EXT_M4V, COLOR_VIDEO},
  358. {"markdown", ICON_EXT_MD, COLOR_DOCS},
  359. {"md", ICON_EXT_MD, COLOR_DOCS},
  360. {"mk", ICON_EXT_MK, 0},
  361. {"mkv", ICON_EXT_MKV, COLOR_VIDEO},
  362. {"mov", ICON_EXT_MOV, COLOR_VIDEO},
  363. {"mp3", ICON_EXT_MP3, COLOR_AUDIO},
  364. {"mp4", ICON_EXT_MP4, COLOR_VIDEO},
  365. {"mpeg", ICON_EXT_MPEG, COLOR_VIDEO},
  366. {"mpg", ICON_EXT_MPG, COLOR_VIDEO},
  367. {"msi", ICON_EXT_MSI, 0},
  368. /* N */
  369. /* O */
  370. {"o", ICON_EXT_O, 0},
  371. {"ogg", ICON_EXT_OGG, COLOR_AUDIO},
  372. {"opdownload", ICON_EXT_ODOWNLOAD, 0},
  373. {"out", ICON_EXT_OUT, 0},
  374. /* P */
  375. {"part", ICON_EXT_PART, 0},
  376. {"patch", ICON_EXT_PATCH, 0},
  377. {"pdf", ICON_EXT_PDF, COLOR_DOCS},
  378. {"php", ICON_EXT_PHP, 0},
  379. {"png", ICON_EXT_PNG, COLOR_IMAGE},
  380. {"ppt", ICON_EXT_PPT, 0},
  381. {"pptx", ICON_EXT_PPTX, 0},
  382. {"psb", ICON_EXT_PSB, 0},
  383. {"psd", ICON_EXT_PSD, 0},
  384. {"py", ICON_EXT_PY, COLOR_PYTHON},
  385. {"pyc", ICON_EXT_PYC, COLOR_PYTHON},
  386. {"pyd", ICON_EXT_PYD, COLOR_PYTHON},
  387. {"pyo", ICON_EXT_PYO, COLOR_PYTHON},
  388. /* Q */
  389. /* R */
  390. {"rar", ICON_EXT_RAR, COLOR_ARCHIVE},
  391. {"rc", ICON_EXT_RC, 0},
  392. {"rom", ICON_EXT_ROM, 0},
  393. {"rpm", ICON_EXT_RPM, COLOR_ARCHIVE},
  394. {"rss", ICON_EXT_RSS, 0},
  395. {"rtf", ICON_EXT_RTF, 0},
  396. /* S */
  397. {"sass", ICON_EXT_SASS, COLOR_CSS},
  398. {"scss", ICON_EXT_SCSS, COLOR_CSS},
  399. {"so", ICON_EXT_SO, 0},
  400. {"scala", ICON_EXT_SCALA, COLOR_SCALA},
  401. {"sh", ICON_EXT_SH, 0},
  402. {"slim", ICON_EXT_SLIM, COLOR_DOCUMENT},
  403. {"sln", ICON_EXT_SLN, 0},
  404. {"sql", ICON_EXT_SQL, 0},
  405. {"srt", ICON_EXT_SRT, 0},
  406. {"sub", ICON_EXT_SUB, 0},
  407. {"svg", ICON_EXT_SVG, COLOR_IMAGE},
  408. /* T */
  409. {"tar", ICON_EXT_TAR, COLOR_ARCHIVE},
  410. {"tex", ICON_EXT_TEX, 0},
  411. {"tgz", ICON_EXT_TGZ, COLOR_ARCHIVE},
  412. {"ts", ICON_EXT_TS, COLOR_JAVASCRIPT},
  413. {"tsx", ICON_EXT_TSX, COLOR_REACT},
  414. {"txt", ICON_EXT_TXT, COLOR_DOCUMENT},
  415. {"txz", ICON_EXT_TXZ, COLOR_ARCHIVE},
  416. /* U */
  417. /* V */
  418. {"vid", ICON_EXT_VID, COLOR_VIDEO},
  419. {"vim", ICON_EXT_VIM, COLOR_VIM},
  420. {"vimrc", ICON_EXT_VIMRC, COLOR_VIM},
  421. {"vtt", ICON_EXT_SRT, 0},
  422. /* W */
  423. {"wav", ICON_EXT_WAV, COLOR_AUDIO},
  424. {"webm", ICON_EXT_WEBM, COLOR_VIDEO},
  425. {"wma", ICON_EXT_WMA, COLOR_AUDIO},
  426. {"wmv", ICON_EXT_WMV, COLOR_VIDEO},
  427. /* X */
  428. {"xbps", ICON_EXT_XBPS, COLOR_ARCHIVE},
  429. {"xhtml", ICON_EXT_XHTML, 0},
  430. {"xls", ICON_EXT_XLS, 0},
  431. {"xlsx", ICON_EXT_XLSX, 0},
  432. {"xml", ICON_EXT_XML, 0},
  433. {"xz", ICON_EXT_XZ, COLOR_ARCHIVE},
  434. /* Y */
  435. {"yaml", ICON_EXT_YAML, COLOR_DOCUMENT},
  436. {"yml", ICON_EXT_YML, COLOR_DOCUMENT},
  437. /* Z */
  438. {"zip", ICON_EXT_ZIP, COLOR_ARCHIVE},
  439. /* Other */
  440. #endif
  441. };