Created
January 16, 2015 12:39
-
-
Save davestewart/74c26f7d86d1e11c68ea to your computer and use it in GitHub Desktop.
Sets Bitbucket, Github, Gist or (whatever you add) source code view indentation to something sensible
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Source View Indentation Fix | |
// @namespace http://davestewart.io | |
// @version 1.0 | |
// @description Sets Bitbucket, Github, Gist or (whatever you add) source code view indentation to something sensible | |
// @author Dave Stewart | |
// @grant none | |
// @match https://bitbucket.org/* | |
// @match https://gist.github.com | |
// @match https://gist.github.com/* | |
// @match https://github.com/* | |
// ==/UserScript== | |
// ----------------------------------------------------------------------------------------------------------- | |
// user preferences | |
// tab sizes | |
var sizes = | |
{ | |
// add / modify language extensions here... | |
default :4, | |
html :4, | |
js :4, | |
rb :2 | |
}; | |
// selectors | |
var selectors = | |
{ | |
// add / modifiy selector templates here... | |
general: | |
[ | |
'pre, pre *', // preformatted tags & content | |
'.code pre', // bitbucket | |
'.line' // gist | |
], | |
diffs: | |
[ | |
'div[class*="{lang}-"] td', // github | |
'section[data-filename$=".{lang}"] pre.source' // bitbucket | |
], | |
files: | |
[ | |
'div.{lang}-blob-data div.line', // gist | |
'td.{lang}-file-line', // github | |
'#editor-container[data-source-url$="{lang}"] pre' // bitbucket | |
] | |
}; | |
// ----------------------------------------------------------------------------------------------------------- | |
// code | |
// setup | |
function addStyle(selector, lang, size) | |
{ | |
selector = selector.replace('{lang}', lang); | |
styles += selector + '{ tab-size: ' +size+ '; }\n'; | |
} | |
var styles = ''; | |
// build styles | |
// loop over types | |
for(var type in selectors) | |
{ | |
// add heading | |
styles += '\n/* ' +type+ ' */\n\n'; | |
// loop over rules | |
for(var i = 0; i < selectors[type].length; i++) | |
{ | |
var selector = selectors[type][i]; | |
// if no {lang} variable is found in the selector, just add the style once | |
if(selector.indexOf('{lang}') == -1) | |
{ | |
addStyle(selector, null, sizes.default); | |
} | |
// otherwise, create a new rule for each language | |
else | |
{ | |
for(var lang in sizes) | |
{ | |
if(lang !== 'default') | |
{ | |
addStyle(selector, lang, sizes[lang]); | |
} | |
} | |
} | |
} | |
} | |
// add styles to page | |
console.log('Code view indentation modified by Tampermonkey script "Source View Indentation Fix"'); | |
$('head').append('<style>' +styles+ '</style>'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hm, not working for me :(