Skip to content

Instantly share code, notes, and snippets.

@Number-3434
Forked from sibbng/workbench.html
Last active July 4, 2024 10:03
Show Gist options
  • Save Number-3434/184b74e1bf11758855f52ef1c076717e to your computer and use it in GitHub Desktop.
Save Number-3434/184b74e1bf11758855f52ef1c076717e to your computer and use it in GitHub Desktop.
Icon Theme support for File Browser VS Code Extension
<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
http-equiv="Content-Security-Policy"
content="
default-src
'none'
;
img-src
'self'
data:
blob:
vscode-remote-resource:
vscode-managed-remote-resource:
https:
;
media-src
'self'
;
frame-src
'self'
vscode-webview: https://*.vscode-webview-test.com;
;
object-src
'self'
;
script-src
'self'
'unsafe-eval'
'unsafe-inline'
blob:
;
style-src
'self'
'unsafe-inline'
;
connect-src
'self'
https:
ws:
;
font-src
'self'
vscode-remote-resource:
vscode-managed-remote-resource:
https://*.vscode-unpkg.net
;
require-trusted-types-for
'script'
;
trusted-types
amdLoader
cellRendererEditorText
defaultWorkerFactory
diffEditorWidget
diffReview
domLineBreaksComputer
dompurify
editorGhostText
editorViewLayer
notebookRenderer
stickyScrollViewLayer
tokenizeToString
;
"
/>
</head>
<body aria-label=""></body>
<script>
//# sourceMappingURL=https://ticino.blob.core.windows.net/sourcemaps/ea3859d4ba2f3e577a159bc91e3074c5d85c0523/core/vs/code/electron-browser/workbench/workbench.js.map
/*
* arrive.js
* v2.4.1
* https://github.com/uzairfarooq/arrive
* MIT licensed
*
* Copyright (c) 2014-2017 Uzair Farooq
*/
var Arrive = (function (e, t, n) {
"use strict";
function r(e, t, n) {
l.addMethod(t, n, e.unbindEvent),
l.addMethod(t, n, e.unbindEventWithSelectorOrCallback),
l.addMethod(t, n, e.unbindEventWithSelectorAndCallback);
}
function i(e) {
(e.arrive = f.bindEvent), r(f, e, "unbindArrive"), (e.leave = d.bindEvent), r(d, e, "unbindLeave");
}
if (e.MutationObserver && "undefined" != typeof HTMLElement) {
var o = 0,
l = (function () {
var t =
HTMLElement.prototype.matches ||
HTMLElement.prototype.webkitMatchesSelector ||
HTMLElement.prototype.mozMatchesSelector ||
HTMLElement.prototype.msMatchesSelector;
return {
matchesSelector: function (e, n) {
return e instanceof HTMLElement && t.call(e, n);
},
addMethod: function (e, t, r) {
var i = e[t];
e[t] = function () {
return r.length == arguments.length ? r.apply(this, arguments) : "function" == typeof i ? i.apply(this, arguments) : n;
};
},
callCallbacks: function (e, t) {
t && t.options.onceOnly && 1 == t.firedElems.length && (e = [e[0]]);
for (var n, r = 0; (n = e[r]); r++) n && n.callback && n.callback.call(n.elem, n.elem);
t &&
t.options.onceOnly &&
1 == t.firedElems.length &&
t.me.unbindEventWithSelectorAndCallback.call(t.target, t.selector, t.callback);
},
checkChildNodesRecursively: function (e, t, n, r) {
for (var i, o = 0; (i = e[o]); o++)
n(i, t, r) && r.push({ callback: t.callback, elem: i }),
i.childNodes.length > 0 && l.checkChildNodesRecursively(i.childNodes, t, n, r);
},
mergeArrays: function (e, t) {
var n,
r = {};
for (n in e) e.hasOwnProperty(n) && (r[n] = e[n]);
for (n in t) t.hasOwnProperty(n) && (r[n] = t[n]);
return r;
},
toElementsArray: function (t) {
return n === t || ("number" == typeof t.length && t !== e) || (t = [t]), t;
},
};
})(),
c = (function () {
var e = function () {
(this._eventsBucket = []), (this._beforeAdding = null), (this._beforeRemoving = null);
};
return (
(e.prototype.addEvent = function (e, t, n, r) {
var i = { target: e, selector: t, options: n, callback: r, firedElems: [] };
return this._beforeAdding && this._beforeAdding(i), this._eventsBucket.push(i), i;
}),
(e.prototype.removeEvent = function (e) {
for (var t, n = this._eventsBucket.length - 1; (t = this._eventsBucket[n]); n--)
if (e(t)) {
this._beforeRemoving && this._beforeRemoving(t);
var r = this._eventsBucket.splice(n, 1);
r && r.length && (r[0].callback = null);
}
}),
(e.prototype.beforeAdding = function (e) {
this._beforeAdding = e;
}),
(e.prototype.beforeRemoving = function (e) {
this._beforeRemoving = e;
}),
e
);
})(),
a = function (t, r) {
var i = new c(),
o = this,
a = { fireOnAttributesModification: !1 };
return (
i.beforeAdding(function (n) {
var i,
l = n.target;
(l === e.document || l === e) && (l = document.getElementsByTagName("html")[0]),
(i = new MutationObserver(function (e) {
r.call(this, e, n);
}));
var c = t(n.options);
i.observe(l, c), (n.observer = i), (n.me = o);
}),
i.beforeRemoving(function (e) {
e.observer.disconnect();
}),
(this.bindEvent = function (e, t, n) {
t = l.mergeArrays(a, t);
for (var r = l.toElementsArray(this), o = 0; o < r.length; o++) i.addEvent(r[o], e, t, n);
}),
(this.unbindEvent = function () {
var e = l.toElementsArray(this);
i.removeEvent(function (t) {
for (var r = 0; r < e.length; r++) if (this === n || t.target === e[r]) return !0;
return !1;
});
}),
(this.unbindEventWithSelectorOrCallback = function (e) {
var t,
r = l.toElementsArray(this),
o = e;
(t =
"function" == typeof e
? function (e) {
for (var t = 0; t < r.length; t++) if ((this === n || e.target === r[t]) && e.callback === o) return !0;
return !1;
}
: function (t) {
for (var i = 0; i < r.length; i++) if ((this === n || t.target === r[i]) && t.selector === e) return !0;
return !1;
}),
i.removeEvent(t);
}),
(this.unbindEventWithSelectorAndCallback = function (e, t) {
var r = l.toElementsArray(this);
i.removeEvent(function (i) {
for (var o = 0; o < r.length; o++)
if ((this === n || i.target === r[o]) && i.selector === e && i.callback === t) return !0;
return !1;
});
}),
this
);
},
s = function () {
function e(e) {
var t = { attributes: !1, childList: !0, subtree: !0 };
return e.fireOnAttributesModification && (t.attributes = !0), t;
}
function t(e, t) {
e.forEach(function (e) {
var n = e.addedNodes,
i = e.target,
o = [];
null !== n && n.length > 0
? l.checkChildNodesRecursively(n, t, r, o)
: "attributes" === e.type && r(i, t, o) && o.push({ callback: t.callback, elem: i }),
l.callCallbacks(o, t);
});
}
function r(e, t) {
return l.matchesSelector(e, t.selector) && (e._id === n && (e._id = o++), -1 == t.firedElems.indexOf(e._id))
? (t.firedElems.push(e._id), !0)
: !1;
}
var i = { fireOnAttributesModification: !1, onceOnly: !1, existing: !1 };
f = new a(e, t);
var c = f.bindEvent;
return (
(f.bindEvent = function (e, t, r) {
n === r ? ((r = t), (t = i)) : (t = l.mergeArrays(i, t));
var o = l.toElementsArray(this);
if (t.existing) {
for (var a = [], s = 0; s < o.length; s++)
for (var u = o[s].querySelectorAll(e), f = 0; f < u.length; f++) a.push({ callback: r, elem: u[f] });
if (t.onceOnly && a.length) return r.call(a[0].elem, a[0].elem);
setTimeout(l.callCallbacks, 1, a);
}
c.call(this, e, t, r);
}),
f
);
},
u = function () {
function e() {
var e = { childList: !0, subtree: !0 };
return e;
}
function t(e, t) {
e.forEach(function (e) {
var n = e.removedNodes,
i = [];
null !== n && n.length > 0 && l.checkChildNodesRecursively(n, t, r, i), l.callCallbacks(i, t);
});
}
function r(e, t) {
return l.matchesSelector(e, t.selector);
}
var i = {};
d = new a(e, t);
var o = d.bindEvent;
return (
(d.bindEvent = function (e, t, r) {
n === r ? ((r = t), (t = i)) : (t = l.mergeArrays(i, t)), o.call(this, e, t, r);
}),
d
);
},
f = new s(),
d = new u();
t && i(t.fn),
i(HTMLElement.prototype),
i(NodeList.prototype),
i(HTMLCollection.prototype),
i(HTMLDocument.prototype),
i(Window.prototype);
var h = {};
return r(f, h, "unbindAllArrive"), r(d, h, "unbindAllLeave"), h;
}
})(window, "undefined" == typeof jQuery ? null : jQuery, void 0);
const styleSheet = document.createElement("style", { type: "text/css" });
styleSheet.innerText = `
.monaco-icon-label.codicon::before {
height: initial !important;
padding: 0 !important;
}`;
document.head.appendChild(styleSheet);
/**
* @param {HTMLElement} element
*/
const addClasses = (element) => {
const filename = (element.parentElement.parentElement || element.parentElement).innerText.trim();
if (!filename) return;
const extension = filename.split(".").pop();
const dotfile = filename.startsWith(".") ? filename.substr(1) : "";
element.classList.add(
extension + "-lang-file-icon",
filename + "-name-file-icon",
"file-icon",
"monaco-icon-label",
"config.js-ext-file-icon",
"ext-file-icon",
extension + "-ext-file-icon",
dotfile + "-ext-file-icon"
);
};
document.arrive(".quick-input-list .codicon.codicon-file", function () {
addClasses(this);
});
document.arrive(".quick-input-list .codicon.codicon-folder", function () {
this.classList.add("monaco-icon-label", "folder-icon");
});
</script>
<!-- Startup via workbench.js -->
<script src="workbench.js"></script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment