Github tabs to Space

tabs to space

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

Advertisement:

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

Advertisement:

// ==UserScript==
// @name Github tabs to Space
// @namespace github.com/alejandrosc/
// @match https://github.com/*
// @version 1.0.1
// @homepageURL https://github.com/alejandrosc
// @description tabs to space
// @grant none
// @run-at document-start
// ==/UserScript==

"use strict";

window.onload = function () {
  const spaces = 2;
  const regex_find = /^\t+/;
  const regex_split = /[^\t]/;

  const query_selector =
    ".highlight.tab-size.js-file-line-container td.blob-code.blob-code-inner.js-file-line";

  const elements = document.querySelectorAll(query_selector);

  for (let i = 0, length = elements.length; i < length; i++) {
    let line = elements[i];
    line.innerHTML = line.innerHTML.replace(
      regex_find,
      " ".repeat(spaces * line.innerHTML.split(regex_split)[0].length),
      line.innerHTML
    );
  }
};