User:PerfektesChaos/js/lintHint/d.js: Difference between revisions

Content deleted Content added
-2.14
-2.15
Line 1:
/// User:PerfektesChaos/js/lintHint/d.js
// Show LintErrors analysis live
/// 2018-02-0708 PerfektesChaos@de.wikipedia
// ResourceLoader: compatible;
// dependencies: user, mw.API
Line 17:
( function ( mw, $ ) {
"use strict";
var Version = -2.1415,
Signature = "lintHint",
HINT = { cmodels: { "wikitext": true,
Line 93:
LINTER = { },
PREGO = { app: false,
signature: "preferencesGadgetOptions" };,
TEACH = { };
 
 
Line 250 ⟶ 251:
// mw.loader.state()
// mw.config.get()
// TEACH.fetch()
// GUIDER.first()
// fair()
Line 257 ⟶ 259:
// (features)
// (BOX.feed)
// 2018-02-0708 PerfektesChaos@de.wikipedia
var listen, live, re, s;
HINT.signature = "ext.gadget." + Signature;
Line 272 ⟶ 274:
s = mw.config.get( "wgTitle" );
if ( s.indexOf( "/" + Signature ) > 0 ) {
TEACH.fetch();
GUIDER.first();
}
Line 347 ⟶ 350:
PREGO.feed();
fair();
TEACH.fetch();
if ( HINT.live ) {
mw.loader.using( HINT.using, BOX.feed );
Line 855 ⟶ 859:
// >< BOX.$other
// mw.message()
// TEACH.feed()
// BOX.future()
// (BOX.find)
// (BOX.future)
// 20172018-1102-1007 PerfektesChaos@de.wikipedia
var n = 0,
e, i, k, par, s, $e, $e2, $e3, $td, $tr;
Line 866 ⟶ 871:
if ( mw.messages.exists( s ) ) {
s = mw.message( s ).text();
} else if ( HINT.later ) {
s = e.type;
} else {
sTEACH.feed( =e.type false);
if ( HINT.later ) {
s = e.type;
} else {
s = false;
}
}
if ( s ) {
Line 1,723 ⟶ 1,731:
}
}; // PREGO.feed()
 
 
 
TEACH.feed = function ( apply ) {
// Memorize unknown category
// Uses:
// >< TEACH.o
// TEACH.flush()
// 2018-02-08 PerfektesChaos@de.wikipedia
if ( typeof TEACH.o !== "object" ) {
TEACH.o = [ ];
}
TEACH.o.push( apply );
TEACH.flush();
}; // TEACH.feed()
 
 
 
TEACH.fetch = function () {
// Consider memorized categories
// Uses:
// > Signature
// >< HINT.errors
// < TEACH.o
// TEACH.flush()
// 2018-02-08 PerfektesChaos@de.wikipedia
var got, i, k, leave, parsed, s, webLs;
if ( typeof window.localStorage === "object" ) {
webLs = window.localStorage;
if ( webLs && typeof webLs.getItem === "function" ) {
try {
got = webLs.getItem( Signature );
if ( got ) {
parsed = JSON.parse( got );
if ( typeof parsed === "object"
&& parsed &&
typeof parsed.length === "number"
&& parsed.length ) {
TEACH.o = parsed;
for ( i = 0; i < TEACH.o.length; i++ ) {
s = TEACH.o[ i ];
if ( typeof s === "string"
&& s ) {
k = $.inArray( s, HINT.errors );
if ( k < 0 ) {
HINT.errors.push( s );
} else {
s = false;
}
} else {
s = false;
}
if ( ! s ) {
TEACH.o.splice( i, 1 );
leave = true;
}
} // for i
}
}
if ( typeof TEACH.o !== "object" ) {
TEACH.o = [ ];
}
if ( got && ( leave || ! TEACH.o.length ) ) {
TEACH.flush();
}
} catch (e) {
}
}
}
}; // TEACH.fetch()
 
 
 
TEACH.flush = function () {
// Update unknown categories memory
// Uses:
// > Signature
// > TEACH.o
// 2018-02-08 PerfektesChaos@de.wikipedia
var webLs;
if ( typeof window.localStorage === "object" ) {
webLs = window.localStorage;
if ( webLs &&
typeof webLs.removeItem === "function" &&
typeof webLs.setItem === "function" ) {
try {
if ( TEACH.o.length ) {
webLs.setItem( Signature,
JSON.stringify( TEACH.o ) );
} else {
webLs.removeItem( Signature );
}
} catch (e) {
}
}
}
}; // TEACH.flush()