forked from karabaja4/vscode-explorer-git-status
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dist.min.js
1 lines (1 loc) · 1.93 KB
/
dist.min.js
1
function injectGitFileStatus(){const a=5e3,b="limegreen",c="darkorange",e=document.getElementById("workbench.view.explorer");if(e){const f=e.getElementsByClassName("explorer-folders-view")[0];if(f){const g=f.getElementsByClassName("monaco-tree")[0];if(g){const h=g.getElementsByClassName("monaco-tree-row")[0];if(h){const j=h.getElementsByClassName("explorer-item")[0];if(j){const k=require("path"),l=require("child_process").exec,m=document.createElement("style");document.body.appendChild(m);const n=x=>{return"~"===x[0]?k.join(process.env.HOME,x.slice(1)):x},o=x=>{const y=process.env.HOME;if(y&&x.startsWith(y)){const z=new RegExp(`^${y}`);return x.replace(z,"~")}return x},p=x=>{return k.normalize(x.substr(3)).replace(/\\+$/,"").replace(/\/+$/,"").replace(/\\/g,"\\\\")},q=x=>{let y=1;const z=[],A=k.sep.replace(/\\/g,"\\\\");for(;y=x.indexOf(A,y)+1;)z.push(x.substr(0,y-1));return z},s=(x,y,z)=>{const A=o(k.join(x,y).replace(/\\/g,"\\\\"));return`${"#workbench\\.view\\.explorer .explorer-folders-view .monaco-tree .monaco-tree-rows .monaco-tree-row .explorer-item"}[title="${A}" i]{${z}}`},t=k.normalize(k.dirname(j.getAttribute("title"))),v={cwd:n(t)};return void l("git rev-parse --show-toplevel",v,(x,y)=>{if(!x){const A=y.trim(),B=()=>{const D={cwd:n(A)};l("git status --short --ignored",D,(F,G)=>{if(!F){const I=G.split("\n"),J=I.filter(P=>{return P.startsWith("?? ")}).map(P=>{return p(P)}),K=I.filter(P=>{return P.startsWith(" M ")}).map(P=>{return p(P)}),L=I.filter(P=>{return P.startsWith("!! ")}).map(P=>{return p(P)});let M="";const N=new Set,O=new Set;J.forEach(P=>{const Q=q(P);Q.forEach(R=>{N.add(R)}),M+=s(A,P,`color:${b};`)}),K.forEach(P=>{const Q=q(P);Q.forEach(R=>{O.add(R)}),M+=s(A,P,`color:${c};`)}),L.forEach(P=>{M+=s(A,P,`opacity:${"0.4"};`)}),N.forEach(P=>{M+=s(A,P,`color:${b};`)}),O.forEach(P=>{M+=s(A,P,`color:${c};`)}),m.innerHTML!==M&&(m.innerHTML=M)}setTimeout(B,a)})};B()}})}}}}}setTimeout(injectGitFileStatus,a)}injectGitFileStatus();