User:Gerbrant/edit/autoReplace.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
new function() { var settings, libsToLoad = 1, multiR, regexR, self = this; if(wgCanonicalNamespace == "Talk" || wgCanonicalNamespace.slice(-5) == "_talk") return; try{ settings = Gerbrant.edit.autoReplace; }catch(nosettings){} if(!settings) settings = {}; this.show = function() { regexR.replace(multiR.getRE().source, //hack, should really fix regexR... true, multiR.handler); }; this.caption = "AutoReplace"; this.diag = function() { if(libsToLoad >= 0) alert("Couldn't load all libraries."); else alert("All libraries are loaded."); }; function libFinished() { if(--libsToLoad < 0) self.show(); if(multiR && regexR) module("Gerbrant.edit.autoReplace", self); } loadModule("Gerbrant.edit.multiReplace", function(mr) { var lib, i; multiR = new mr; libFinished(); function loadDefs(defs) { var i, def; for(i in defs) { def = defs[i]; multiR.add(def.re, def.hf); } } function loadReplLib(libName) { libsToLoad++; loadModule(libName, function(defs) { loadDefs(defs); libFinished(); }); } if(!settings.noDefault) loadReplLib("Gerbrant.edit.autoReplace.default"); lib = settings.lib; if(lib) for(i in lib) loadReplLib(lib[i]); lib = settings.defs; if(lib) loadDefs(lib); }); loadModule("Gerbrant.edit.regexReplace", function(rr) { regexR = rr; libFinished(); }); }