jupyterlab_vscode_icons_extension 1.1.40 → 1.1.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -298,6 +298,12 @@ const fileTypeConfigs = [
298
298
  iconName: 'file-type-tsconfig-official',
299
299
  group: 'enableConfigIcons'
300
300
  },
301
+ {
302
+ pattern: '^(\\.prettierrc(\\..*)?|prettier\\.config\\..+|\\.prettierignore)$',
303
+ extensions: [],
304
+ iconName: 'custom-prettier',
305
+ group: 'enableConfigIcons'
306
+ },
301
307
  {
302
308
  pattern: '^yarn\\.lock$',
303
309
  extensions: [],
@@ -880,9 +886,19 @@ const plugin = {
880
886
  item.setAttribute('data-pytest', 'true');
881
887
  }
882
888
  // Mark executable files if setting is enabled (uses server API for +x detection)
889
+ // Only show executable icon for shell scripts or files without a specific type
883
890
  item.removeAttribute('data-executable');
884
891
  if (settings.enableExecutableIcons && executables.has(name)) {
885
- item.setAttribute('data-executable', 'true');
892
+ const shellTypes = [
893
+ 'vscode-shell',
894
+ 'vscode-batch',
895
+ 'vscode-file-type-powershell'
896
+ ];
897
+ const isShellScript = shellTypes.includes(fileType);
898
+ const hasNoSpecificType = !fileType || fileType === 'file' || fileType === '';
899
+ if (isShellScript || hasNoSpecificType) {
900
+ item.setAttribute('data-executable', 'true');
901
+ }
886
902
  }
887
903
  // Check if this is a directory (folder)
888
904
  const isDir = fileType === 'directory' ||
@@ -1003,10 +1019,27 @@ const plugin = {
1003
1019
  contentType: 'file',
1004
1020
  icon: makefileIcon
1005
1021
  });
1006
- // Register LICENSE with custom copyright icon (C in circle)
1007
- const licenseSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
1008
- <circle cx="16" cy="16" r="11" fill="none" stroke="#4a90e2" stroke-width="3"/>
1009
- <path fill="#4a90e2" stroke="#4a90e2" stroke-width="0.5" d="M19 19.5c-0.8 0.8-2 1.3-3.2 1.3c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5c1.2 0 2.3 0.5 3.2 1.3l1.2-1.2c-1.1-1.1-2.6-1.8-4.3-1.8c-3.4 0-6.2 2.8-6.2 6.2s2.8 6.2 6.2 6.2c1.7 0 3.2-0.7 4.3-1.8L19 19.5z"/>
1022
+ // Register LICENSE with document + seal icon
1023
+ const licenseSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490">
1024
+ <path fill="#C33831" d="M320,335.898c38.398-19.199,69.199,11.504,50,50c19.199,38.398-11.602,69.199-50,50c-38.398,19.199-69.199-11.602-50-50C250.801,347.402,281.602,316.699,320,335.898z"/>
1025
+ <path fill="#e0bdbd" d="M430,110v370H60V10h270v100H430z M370,385.898c19.199-38.496-11.602-69.199-50-50c-38.398-19.199-69.199,11.504-50,50c-19.199,38.398,11.602,69.199,50,50C358.398,455.098,389.199,424.297,370,385.898z"/>
1026
+ <polygon fill="#c47878" points="430,110 330,110 330,10"/>
1027
+ <path fill="#231F20" d="M439.976,110c-0.001-2.602-0.992-5.159-2.904-7.071l-100-100c-1.912-1.912-4.47-2.903-7.071-2.904V0H60c-5.523,0-10,4.477-10,10v470c0,5.523,4.477,10,10,10h370c5.522,0,10-4.477,10-10V110H439.976z M340,34.142L405.857,100H340V34.142z M70,470V20h250v90c0,5.523,4.478,10,10,10h90v350H70z"/>
1028
+ <path fill="#5e1c18" d="M379.447,339.49c-7.657-12.376-20.975-19.475-36.535-19.475c-7.511,0-15.198,1.64-22.912,4.882c-7.714-3.242-15.401-4.882-22.912-4.882c-15.56,0-28.875,7.099-36.533,19.476c-8.036,12.989-8.541,29.684-1.551,46.403c-6.992,16.688-6.49,33.368,1.542,46.364c7.666,12.403,20.998,19.516,36.577,19.515c7.501,0,15.178-1.637,22.877-4.872c7.7,3.235,15.375,4.872,22.874,4.872c0.001,0,0.003,0,0.004,0c15.579-0.001,28.911-7.116,36.576-19.52c8.031-12.996,8.533-29.673,1.542-46.358C387.988,369.172,387.483,352.478,379.447,339.49z M361.056,390.371c5.903,11.806,6.408,23.239,1.385,31.368c-3.998,6.469-10.946,10.033-19.564,10.034c-5.817,0-12.01-1.621-18.404-4.818c-1.407-0.704-2.94-1.056-4.472-1.056s-3.065,0.352-4.472,1.056c-6.393,3.196-12.586,4.817-18.406,4.818c-8.618,0-15.566-3.562-19.564-10.03c-5.023-8.128-4.519-19.563,1.386-31.372c1.406-2.812,1.407-6.122,0.005-8.935c-5.908-11.846-6.413-23.298-1.387-31.422c3.989-6.448,10.924-9.999,19.525-9.999c5.829,0,12.033,1.625,18.44,4.828c2.815,1.407,6.129,1.407,8.943,0c6.407-3.204,12.611-4.828,18.44-4.828c8.603,0,15.538,3.551,19.527,9.998c5.026,8.123,4.52,19.576-1.389,31.423C359.648,384.249,359.649,387.559,361.056,390.371z"/>
1029
+ <rect x="312.54" y="363.26" fill="#5e1c18" width="14.1" height="12.83"/>
1030
+ <rect x="306.44" y="394.44" fill="#5e1c18" width="26.48" height="7.21"/>
1031
+ <rect x="95" y="395" fill="#231F20" width="120" height="20"/>
1032
+ <rect x="195" y="430" fill="#231F20" width="20" height="20"/>
1033
+ <rect x="165" y="430" fill="#231F20" width="20" height="20"/>
1034
+ <rect x="95" y="430" fill="#231F20" width="20" height="20"/>
1035
+ <rect x="95" y="40" fill="#231F20" width="60" height="20"/>
1036
+ <rect x="95" y="70" fill="#231F20" width="120" height="20"/>
1037
+ <rect x="165" y="150" fill="#231F20" width="160" height="20"/>
1038
+ <rect x="95" y="190" fill="#231F20" width="300" height="20"/>
1039
+ <rect x="95" y="230" fill="#231F20" width="300" height="20"/>
1040
+ <rect x="95" y="270" fill="#231F20" width="240" height="20"/>
1041
+ <rect x="375" y="270" fill="#231F20" width="20" height="20"/>
1042
+ <rect x="345" y="270" fill="#231F20" width="20" height="20"/>
1010
1043
  </svg>`;
1011
1044
  const licenseIcon = new LabIcon({
1012
1045
  name: 'license-icon',
@@ -1091,6 +1124,46 @@ const plugin = {
1091
1124
  icon: mcpIcon
1092
1125
  });
1093
1126
  }
1127
+ // Register Prettier config files with custom colorful bars icon
1128
+ if (settings.enableConfigIcons) {
1129
+ const prettierSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
1130
+ <path d="M21.714,8.571h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H21.714a.571.571,0,0,1-.571-.571A.571.571,0,0,1,21.714,8.571Z" fill="#56b3b4"/>
1131
+ <path d="M4.571,26.857h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,27.429.571.571,0,0,1,4.571,26.857Z" fill="#ea5e5e"/>
1132
+ <path d="M18.286,17.714h3.429a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,17.714Z" fill="#bf85bf"/>
1133
+ <path d="M11.429,17.714H16a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H11.429a.571.571,0,0,1-.571-.571A.571.571,0,0,1,11.429,17.714Z" fill="#ea5e5e"/>
1134
+ <path d="M4.571,17.714H9.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,18.286.571.571,0,0,1,4.571,17.714Z" fill="#56b3b4"/>
1135
+ <path d="M4.571,22.286h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,22.857.571.571,0,0,1,4.571,22.286Z" fill="#bf85bf"/>
1136
+ <path d="M4.571,13.143h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,13.714.571.571,0,0,1,4.571,13.143Z" fill="#bf85bf"/>
1137
+ <path d="M10.286,6.286H21.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H10.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,10.286,6.286Z" fill="#f7ba3e"/>
1138
+ <path d="M4.571,6.286H8a.571.571,0,0,1,.571.571A.571.571,0,0,1,8,7.429H4.571A.571.571,0,0,1,4,6.857.571.571,0,0,1,4.571,6.286Z" fill="#ea5e5e"/>
1139
+ <path d="M9.143,24.571h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H9.143a.571.571,0,0,1-.571-.571A.571.571,0,0,1,9.143,24.571Z" fill="#f7ba3e"/>
1140
+ <path d="M9.143,10.857h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H9.143a.571.571,0,0,1-.571-.571A.571.571,0,0,1,9.143,10.857Z" fill="#56b3b4"/>
1141
+ <path d="M4.571,24.571H6.857a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,25.143.571.571,0,0,1,4.571,24.571Z" fill="#56b3b4"/>
1142
+ <path d="M4.571,10.857H6.857a.571.571,0,0,1,.571.571A.571.571,0,0,1,6.857,12H4.571A.571.571,0,0,1,4,11.429.571.571,0,0,1,4.571,10.857Z" fill="#f7ba3e"/>
1143
+ <path d="M13.714,15.429h9.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H13.714a.571.571,0,0,1-.571-.571A.571.571,0,0,1,13.714,15.429Z" fill="#56b3b4"/>
1144
+ <path d="M8,15.429h3.429A.571.571,0,0,1,12,16a.571.571,0,0,1-.571.571H8A.571.571,0,0,1,7.429,16A.571.571,0,0,1,8,15.429Z" fill="#f7ba3e"/>
1145
+ <path d="M4.571,15.429H5.714A.571.571,0,0,1,6.286,16a.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,16A.571.571,0,0,1,4.571,15.429Z" fill="#ea5e5e"/>
1146
+ <path d="M14.857,8.571h4.571A.571.571,0,0,1,20,9.143a.571.571,0,0,1-.571.571H14.857a.571.571,0,0,1-.571-.571A.571.571,0,0,1,14.857,8.571Z" fill="#bf85bf"/>
1147
+ <path d="M4.571,8.571h8a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571h-8A.571.571,0,0,1,4,9.143.571.571,0,0,1,4.571,8.571Z" fill="#56b3b4"/>
1148
+ <path d="M8,20H18.286a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H8a.571.571,0,0,1-.571-.571A.571.571,0,0,1,8,20Z" fill="#f7ba3e"/>
1149
+ <path d="M4.571,20H5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,20.571.571.571,0,0,1,4.571,20Z" fill="#bf85bf"/>
1150
+ <path d="M18.286,10.857H24a.571.571,0,0,1,.571.571A.571.571,0,0,1,24,12H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,10.857Z" fill="#ea5e5e"/>
1151
+ <path d="M18.286,13.143H24a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,13.143Z" fill="#f7ba3e"/>
1152
+ <path d="M4.571,4H18.286a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,4.571.571.571,0,0,1,4.571,4Z" fill="#56b3b4"/>
1153
+ </svg>`;
1154
+ const prettierIcon = new LabIcon({
1155
+ name: 'prettier-icon',
1156
+ svgstr: prettierSvg
1157
+ });
1158
+ docRegistry.addFileType({
1159
+ name: 'vscode-prettier',
1160
+ displayName: 'Prettier Configuration',
1161
+ pattern: '^(\\.prettierrc(\\..*)?|prettier\\.config\\..+|\\.prettierignore)$',
1162
+ fileFormat: 'text',
1163
+ contentType: 'file',
1164
+ icon: prettierIcon
1165
+ });
1166
+ }
1094
1167
  // Register shell scripts with custom black background and desaturated orange icon
1095
1168
  if (settings.enableLanguageIcons) {
1096
1169
  const shellSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jupyterlab_vscode_icons_extension",
3
- "version": "1.1.40",
3
+ "version": "1.1.48",
4
4
  "description": "Jupyterlab extension with a shameless rip-off of the vscode-icons into our beloved environment",
5
5
  "keywords": [
6
6
  "jupyter",
package/src/index.ts CHANGED
@@ -332,6 +332,12 @@ const fileTypeConfigs: IFileTypeConfig[] = [
332
332
  iconName: 'file-type-tsconfig-official',
333
333
  group: 'enableConfigIcons'
334
334
  },
335
+ {
336
+ pattern: '^(\\.prettierrc(\\..*)?|prettier\\.config\\..+|\\.prettierignore)$',
337
+ extensions: [],
338
+ iconName: 'custom-prettier',
339
+ group: 'enableConfigIcons'
340
+ },
335
341
  {
336
342
  pattern: '^yarn\\.lock$',
337
343
  extensions: [],
@@ -973,9 +979,19 @@ const plugin: JupyterFrontEndPlugin<void> = {
973
979
  }
974
980
 
975
981
  // Mark executable files if setting is enabled (uses server API for +x detection)
982
+ // Only show executable icon for shell scripts or files without a specific type
976
983
  item.removeAttribute('data-executable');
977
984
  if (settings.enableExecutableIcons && executables.has(name)) {
978
- item.setAttribute('data-executable', 'true');
985
+ const shellTypes = [
986
+ 'vscode-shell',
987
+ 'vscode-batch',
988
+ 'vscode-file-type-powershell'
989
+ ];
990
+ const isShellScript = shellTypes.includes(fileType);
991
+ const hasNoSpecificType = !fileType || fileType === 'file' || fileType === '';
992
+ if (isShellScript || hasNoSpecificType) {
993
+ item.setAttribute('data-executable', 'true');
994
+ }
979
995
  }
980
996
 
981
997
  // Check if this is a directory (folder)
@@ -1116,10 +1132,27 @@ const plugin: JupyterFrontEndPlugin<void> = {
1116
1132
  icon: makefileIcon
1117
1133
  });
1118
1134
 
1119
- // Register LICENSE with custom copyright icon (C in circle)
1120
- const licenseSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
1121
- <circle cx="16" cy="16" r="11" fill="none" stroke="#4a90e2" stroke-width="3"/>
1122
- <path fill="#4a90e2" stroke="#4a90e2" stroke-width="0.5" d="M19 19.5c-0.8 0.8-2 1.3-3.2 1.3c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5c1.2 0 2.3 0.5 3.2 1.3l1.2-1.2c-1.1-1.1-2.6-1.8-4.3-1.8c-3.4 0-6.2 2.8-6.2 6.2s2.8 6.2 6.2 6.2c1.7 0 3.2-0.7 4.3-1.8L19 19.5z"/>
1135
+ // Register LICENSE with document + seal icon
1136
+ const licenseSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 490 490">
1137
+ <path fill="#C33831" d="M320,335.898c38.398-19.199,69.199,11.504,50,50c19.199,38.398-11.602,69.199-50,50c-38.398,19.199-69.199-11.602-50-50C250.801,347.402,281.602,316.699,320,335.898z"/>
1138
+ <path fill="#e0bdbd" d="M430,110v370H60V10h270v100H430z M370,385.898c19.199-38.496-11.602-69.199-50-50c-38.398-19.199-69.199,11.504-50,50c-19.199,38.398,11.602,69.199,50,50C358.398,455.098,389.199,424.297,370,385.898z"/>
1139
+ <polygon fill="#c47878" points="430,110 330,110 330,10"/>
1140
+ <path fill="#231F20" d="M439.976,110c-0.001-2.602-0.992-5.159-2.904-7.071l-100-100c-1.912-1.912-4.47-2.903-7.071-2.904V0H60c-5.523,0-10,4.477-10,10v470c0,5.523,4.477,10,10,10h370c5.522,0,10-4.477,10-10V110H439.976z M340,34.142L405.857,100H340V34.142z M70,470V20h250v90c0,5.523,4.478,10,10,10h90v350H70z"/>
1141
+ <path fill="#5e1c18" d="M379.447,339.49c-7.657-12.376-20.975-19.475-36.535-19.475c-7.511,0-15.198,1.64-22.912,4.882c-7.714-3.242-15.401-4.882-22.912-4.882c-15.56,0-28.875,7.099-36.533,19.476c-8.036,12.989-8.541,29.684-1.551,46.403c-6.992,16.688-6.49,33.368,1.542,46.364c7.666,12.403,20.998,19.516,36.577,19.515c7.501,0,15.178-1.637,22.877-4.872c7.7,3.235,15.375,4.872,22.874,4.872c0.001,0,0.003,0,0.004,0c15.579-0.001,28.911-7.116,36.576-19.52c8.031-12.996,8.533-29.673,1.542-46.358C387.988,369.172,387.483,352.478,379.447,339.49z M361.056,390.371c5.903,11.806,6.408,23.239,1.385,31.368c-3.998,6.469-10.946,10.033-19.564,10.034c-5.817,0-12.01-1.621-18.404-4.818c-1.407-0.704-2.94-1.056-4.472-1.056s-3.065,0.352-4.472,1.056c-6.393,3.196-12.586,4.817-18.406,4.818c-8.618,0-15.566-3.562-19.564-10.03c-5.023-8.128-4.519-19.563,1.386-31.372c1.406-2.812,1.407-6.122,0.005-8.935c-5.908-11.846-6.413-23.298-1.387-31.422c3.989-6.448,10.924-9.999,19.525-9.999c5.829,0,12.033,1.625,18.44,4.828c2.815,1.407,6.129,1.407,8.943,0c6.407-3.204,12.611-4.828,18.44-4.828c8.603,0,15.538,3.551,19.527,9.998c5.026,8.123,4.52,19.576-1.389,31.423C359.648,384.249,359.649,387.559,361.056,390.371z"/>
1142
+ <rect x="312.54" y="363.26" fill="#5e1c18" width="14.1" height="12.83"/>
1143
+ <rect x="306.44" y="394.44" fill="#5e1c18" width="26.48" height="7.21"/>
1144
+ <rect x="95" y="395" fill="#231F20" width="120" height="20"/>
1145
+ <rect x="195" y="430" fill="#231F20" width="20" height="20"/>
1146
+ <rect x="165" y="430" fill="#231F20" width="20" height="20"/>
1147
+ <rect x="95" y="430" fill="#231F20" width="20" height="20"/>
1148
+ <rect x="95" y="40" fill="#231F20" width="60" height="20"/>
1149
+ <rect x="95" y="70" fill="#231F20" width="120" height="20"/>
1150
+ <rect x="165" y="150" fill="#231F20" width="160" height="20"/>
1151
+ <rect x="95" y="190" fill="#231F20" width="300" height="20"/>
1152
+ <rect x="95" y="230" fill="#231F20" width="300" height="20"/>
1153
+ <rect x="95" y="270" fill="#231F20" width="240" height="20"/>
1154
+ <rect x="375" y="270" fill="#231F20" width="20" height="20"/>
1155
+ <rect x="345" y="270" fill="#231F20" width="20" height="20"/>
1123
1156
  </svg>`;
1124
1157
 
1125
1158
  const licenseIcon = new LabIcon({
@@ -1216,6 +1249,49 @@ const plugin: JupyterFrontEndPlugin<void> = {
1216
1249
  });
1217
1250
  }
1218
1251
 
1252
+ // Register Prettier config files with custom colorful bars icon
1253
+ if (settings.enableConfigIcons) {
1254
+ const prettierSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
1255
+ <path d="M21.714,8.571h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H21.714a.571.571,0,0,1-.571-.571A.571.571,0,0,1,21.714,8.571Z" fill="#56b3b4"/>
1256
+ <path d="M4.571,26.857h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,27.429.571.571,0,0,1,4.571,26.857Z" fill="#ea5e5e"/>
1257
+ <path d="M18.286,17.714h3.429a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,17.714Z" fill="#bf85bf"/>
1258
+ <path d="M11.429,17.714H16a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H11.429a.571.571,0,0,1-.571-.571A.571.571,0,0,1,11.429,17.714Z" fill="#ea5e5e"/>
1259
+ <path d="M4.571,17.714H9.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,18.286.571.571,0,0,1,4.571,17.714Z" fill="#56b3b4"/>
1260
+ <path d="M4.571,22.286h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,22.857.571.571,0,0,1,4.571,22.286Z" fill="#bf85bf"/>
1261
+ <path d="M4.571,13.143h5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,13.714.571.571,0,0,1,4.571,13.143Z" fill="#bf85bf"/>
1262
+ <path d="M10.286,6.286H21.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H10.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,10.286,6.286Z" fill="#f7ba3e"/>
1263
+ <path d="M4.571,6.286H8a.571.571,0,0,1,.571.571A.571.571,0,0,1,8,7.429H4.571A.571.571,0,0,1,4,6.857.571.571,0,0,1,4.571,6.286Z" fill="#ea5e5e"/>
1264
+ <path d="M9.143,24.571h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H9.143a.571.571,0,0,1-.571-.571A.571.571,0,0,1,9.143,24.571Z" fill="#f7ba3e"/>
1265
+ <path d="M9.143,10.857h1.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H9.143a.571.571,0,0,1-.571-.571A.571.571,0,0,1,9.143,10.857Z" fill="#56b3b4"/>
1266
+ <path d="M4.571,24.571H6.857a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,25.143.571.571,0,0,1,4.571,24.571Z" fill="#56b3b4"/>
1267
+ <path d="M4.571,10.857H6.857a.571.571,0,0,1,.571.571A.571.571,0,0,1,6.857,12H4.571A.571.571,0,0,1,4,11.429.571.571,0,0,1,4.571,10.857Z" fill="#f7ba3e"/>
1268
+ <path d="M13.714,15.429h9.143a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H13.714a.571.571,0,0,1-.571-.571A.571.571,0,0,1,13.714,15.429Z" fill="#56b3b4"/>
1269
+ <path d="M8,15.429h3.429A.571.571,0,0,1,12,16a.571.571,0,0,1-.571.571H8A.571.571,0,0,1,7.429,16A.571.571,0,0,1,8,15.429Z" fill="#f7ba3e"/>
1270
+ <path d="M4.571,15.429H5.714A.571.571,0,0,1,6.286,16a.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,16A.571.571,0,0,1,4.571,15.429Z" fill="#ea5e5e"/>
1271
+ <path d="M14.857,8.571h4.571A.571.571,0,0,1,20,9.143a.571.571,0,0,1-.571.571H14.857a.571.571,0,0,1-.571-.571A.571.571,0,0,1,14.857,8.571Z" fill="#bf85bf"/>
1272
+ <path d="M4.571,8.571h8a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571h-8A.571.571,0,0,1,4,9.143.571.571,0,0,1,4.571,8.571Z" fill="#56b3b4"/>
1273
+ <path d="M8,20H18.286a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H8a.571.571,0,0,1-.571-.571A.571.571,0,0,1,8,20Z" fill="#f7ba3e"/>
1274
+ <path d="M4.571,20H5.714a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,20.571.571.571,0,0,1,4.571,20Z" fill="#bf85bf"/>
1275
+ <path d="M18.286,10.857H24a.571.571,0,0,1,.571.571A.571.571,0,0,1,24,12H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,10.857Z" fill="#ea5e5e"/>
1276
+ <path d="M18.286,13.143H24a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H18.286a.571.571,0,0,1-.571-.571A.571.571,0,0,1,18.286,13.143Z" fill="#f7ba3e"/>
1277
+ <path d="M4.571,4H18.286a.571.571,0,0,1,.571.571.571.571,0,0,1-.571.571H4.571A.571.571,0,0,1,4,4.571.571.571,0,0,1,4.571,4Z" fill="#56b3b4"/>
1278
+ </svg>`;
1279
+
1280
+ const prettierIcon = new LabIcon({
1281
+ name: 'prettier-icon',
1282
+ svgstr: prettierSvg
1283
+ });
1284
+
1285
+ docRegistry.addFileType({
1286
+ name: 'vscode-prettier',
1287
+ displayName: 'Prettier Configuration',
1288
+ pattern: '^(\\.prettierrc(\\..*)?|prettier\\.config\\..+|\\.prettierignore)$',
1289
+ fileFormat: 'text',
1290
+ contentType: 'file',
1291
+ icon: prettierIcon
1292
+ });
1293
+ }
1294
+
1219
1295
  // Register shell scripts with custom black background and desaturated orange icon
1220
1296
  if (settings.enableLanguageIcons) {
1221
1297
  const shellSvg = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">