Migrate old externs 8/x

This commit is contained in:
2026-06-17 09:03:19 +08:00
parent c2fb5b205a
commit 00fe7ca3bb
33 changed files with 228 additions and 119 deletions
@@ -27,6 +27,7 @@
, "C#" , "csharp"
, "C/C++" , "cpp"
, "CSS" , "css"
, "Go" , "go"
, "php" , "php"
, "Python" , "python"
, "Perl" , "perl"
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Created by Peter Atoria @ http://iAtoria.com
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// AppleScript brush by David Chambers
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'if fi then elif else for do done until while break continue case function return in eq ne ge le';
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'abstract as base bool break byte case catch char checked class const ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Jen
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Copyright 2006 Shin, YoungJin
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
function getKeywordsCSS(str)
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'abs addr and ansichar ansistring array as asm begin boolean byte cardinal ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
this.regexList = [
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Jean-Lou Dupont
@@ -0,0 +1,46 @@
/**
* Golang brush by ChatGPT
*/
;(function()
{
var ns = __namespace( "Libraries.SyntaxHighlighter.Brush" );
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords =
'break default func interface select case defer go map struct ' +
'chan else goto package switch const fallthrough if range type ' +
'continue for import return var';
var builtins =
'append bool byte cap close complex complex64 complex128 copy delete error false ' +
'float32 float64 imag int int8 int16 int32 int64 iota len make new nil panic ' +
'print println real recover rune string true uint uint8 uint16 uint32 uint64 uintptr any comparable';
this.regexList = [
{ "regex": SyntaxHighlighter.regexLib.singleLineCComments, "css": "comments" },
{ "regex": SyntaxHighlighter.regexLib.multiLineCComments, "css": "comments" },
{ "regex": SyntaxHighlighter.regexLib.doubleQuotedString, "css": "string" },
{ "regex": /`[\s\S]*?`/g, "css": "string" },
{ "regex": /\b(?:0[xX][0-9a-fA-F_]+|0[bB][01_]+|0[oO][0-7_]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[eE][+\-]?\d[\d_]*)?)\b/g, "css": "value" },
{ "regex": /\b[A-Z][A-Za-z0-9_]*\b/g, "css": "color1" },
{ "regex": new RegExp(this.getKeywords(keywords), "gm"), "css": "keyword" },
{ "regex": new RegExp(this.getKeywords(builtins), "gm"), "css": "color2" }
];
};
Brush.prototype = new SyntaxHighlighter.Highlighter();
Brush.aliases = [ "go", "golang" ];
SyntaxHighlighter.brushes[ "Go" ] = Brush;
ns[ NS_EXPORT ]( EX_CLASS, "Go", Brush );
})();
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Andres Almiray
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'break case catch continue ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'abstract assert boolean break byte case catch char class const ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Patrick Webster
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by David Simmons-Duffin and Marty Kube
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function ()
{
var funcs = 'abs acos acosh addcslashes addslashes ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
};
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributes by B.v.Zanten, Getronics
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Gheorghe Milas and Ahmad Sherif
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
function getKeywordsCSS(str)
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
// Contributed by Yegor Jbanov and David Bernard.
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var funcs = 'abs avg case cast coalesce convert count current_timestamp ' +
@@ -13,7 +13,7 @@
/** @type {Libraries.SyntaxHighlighter} */
var SyntaxHighlighter = __import( "Libraries.SyntaxHighlighter" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
var keywords = 'AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto ' +
@@ -15,7 +15,7 @@
var XRegExp = __import( "Libraries.XRegExp" );
/** @type {Libraries.SyntaxHighlighter.Brush} **/
/** @type {typeof Libraries.SyntaxHighlighterBrush} **/
var Brush = function()
{
function process(match, regexInfo)
@@ -19,6 +19,10 @@
var XRegExp;
if (XRegExp) throw Error("can't load XRegExp twice in the same frame");
(function() {
/**
* @param {*} f
* @param {*=} e
*/
function r(f, e) {
if (!XRegExp.isRegExp(f)) throw TypeError("type RegExp expected");
var a = f._xregexp;
@@ -60,6 +64,11 @@
return d
}
/**
* @param {*} f
* @param {*} e
* @param {?number=} a
*/
function p(f, e, a) {
if (Array.prototype.indexOf) return f.indexOf(e, a);
for (a = a || 0; a < f.length; a++)
@@ -137,6 +146,12 @@
z = {};
z[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/;
z[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/;
/**
* @param {*} f
* @param {*} e
* @param {*=} a
* @param {*=} b
*/
XRegExp.addToken = function(f, e, a, b) {
u.push({
pattern: r(f, "g" + (E ? "y" : "")),
@@ -197,14 +212,16 @@
return this.exec(e)
};
RegExp.prototype.exec = function(f) {
var e = n.exec.apply(this, arguments),
var e = /** @type {?RegExpResult} */ (n.exec.apply(this, arguments)),
a;
if (e) {
if (!x && e.length > 1 && p(e, "") > -1) {
a = RegExp(this.source, n.replace.call(t(this), "g", ""));
n.replace.call(f.slice(e.index), a, function() {
/** @type {!Array<?>} */
var ee = /** @type {!Array<?>} */ (e);
for (var c = 1; c < arguments.length - 2; c++)
if (arguments[c] === undefined) e[c] = undefined
if (arguments[c] === undefined) ee[c] = undefined
})
}
if (this._xregexp && this._xregexp.captureNames)
@@ -247,7 +264,7 @@
c = this + "";
c = n.replace.call(c, f, function() {
var d = arguments;
return n.replace.call(e, C, function(h, g, i) {
return n.replace.call(String(e), C, function(h, g, i) {
if (g) switch (g) {
case "$":
return "$";
@@ -262,7 +279,7 @@
g = +g;
if (!g) return h;
for (; g > d.length - 3;) {
i = String.prototype.slice.call(g, -1) + i;
i = String.prototype.slice.call(String(g), -1) + i;
g = Math.floor(g / 10)
}
return (g ? d[g] || "" : "$") + i
@@ -352,6 +369,11 @@
return e.vars.highlighters[t(a)]
}
/**
* @param {*} a
* @param {*} b
* @param {*=} c
*/
function p(a, b, c) {
if (a == null) return null;
var d = c != true ? a.childNodes : [a.parentNode],
@@ -374,6 +396,12 @@
return c
}
/**
* @param {*} a
* @param {*} b
* @param {*} c
* @param {*=} d
*/
function w(a, b, c, d) {
function h(g) {
g = g || window.event;
@@ -388,8 +416,13 @@
a.attachEvent ? a.attachEvent("on" + b, h) : a.addEventListener(b, h, false)
}
/**
* @param {*} a
* @param {*=} b
*/
function A(a, b) {
var c = e.vars.discoveredBrushes,
var c = /** @type {?Object<string, *>} */ (e.vars.discoveredBrushes),
d = null;
if (c == null) {
c = {};
@@ -648,7 +681,12 @@
}
return d
},
highlight: function(a, b) {
highlight:
/**
* @param {*} a
* @param {*=} b
*/
function(a, b) {
var c = this.findElements(a, b),
d = null,
h = e.config;
@@ -698,7 +736,7 @@
};
e.all = e.all;
e.highlight = e.highlight;
e.Match = function(a, b, c) {
e.Match = /** @constructor */ function(a, b, c) {
this.value = a;
this.index = b;
this.length = a.length;
@@ -708,12 +746,12 @@
e.Match.prototype.toString = function() {
return this.value
};
e.HtmlScript = function(a) {
e.HtmlScript = /** @constructor */ function(a) {
function b(j, l) {
for (var m = 0; m < j.length; m++) j[m].index += l
}
var c = A(a),
d, h = new e.brushes.Xml,
d, h = new e.brushes["Xml"],
g = this,
i = "getDiv getHtml init".split(" ");
if (c != null) {
@@ -783,7 +821,7 @@
},
figureOutLineNumbers: function(a) {
var b = [],
c = parseInt(this.getParam("first-line"));
c = parseInt(this.getParam("first-line"),10);
v(a, function(d, h) {
b.push(h + c)
});
@@ -812,7 +850,7 @@
getLineNumbersHtml: function(a, b) {
var c = "",
d = a.split("\n").length,
h = parseInt(this.getParam("first-line")),
h = parseInt(this.getParam("first-line"),10),
g = this.getParam("pad-line-numbers");
if (g == true) g = (h + d - 1).toString().length;
else if (isNaN(g) == true) g = 0;
@@ -834,7 +872,7 @@
a = x(a);
var c = a.split("\n");
this.getParam("pad-line-numbers");
var d = parseInt(this.getParam("first-line"));
var d = parseInt(this.getParam("first-line"),10);
a = "";
for (var h = this.getParam("brush"), g = 0; g < c.length; g++) {
var i = c[g],
@@ -856,6 +894,9 @@
return a ? "<caption>" + a + "</caption>" : ""
},
getMatchesHtml: function(a, b) {
/**
* @param {*=} l
*/
function c(l) {
return (l = l ? l.brushName || g : g) ? l + " " : ""
}
@@ -1,15 +0,0 @@
/** @constructor */
Libraries.SyntaxHighlighter.Brush = function (){};
/** @type {Object} */
Libraries.SyntaxHighlighter.Brush.prototype;
/** @type {Array} */
Libraries.SyntaxHighlighter.Brush.aliases;
/** @type {Array} */
Libraries.SyntaxHighlighter.Brush.regexList;
/** @type {Function} */
Libraries.SyntaxHighlighter.Brush.forHtmlScript;
/** @type {Function} */
Libraries.SyntaxHighlighter.Brush.getKeywords;
@@ -1,19 +1,43 @@
/** @constructor */
/**
* Base brush constructor.
*
* @constructor
*/
Libraries.SyntaxHighlighterBrush = function() {};
/** @type {!Array<string>} */
Libraries.SyntaxHighlighterBrush.prototype.aliases;
/** @type {!Array<*>} */
Libraries.SyntaxHighlighterBrush.prototype.regexList;
/** @type {function(...?): *} */
Libraries.SyntaxHighlighterBrush.prototype.forHtmlScript;
/** @type {function(...?): *} */
Libraries.SyntaxHighlighterBrush.prototype.getKeywords;
/**
* SyntaxHighlighter constructor.
*
* @constructor
*/
Libraries.SyntaxHighlighter = function() {};
/** @type {function(...?): ?} */
Libraries.SyntaxHighlighter.prototype.all = function() {};
/** @type {function(...?): *} */
Libraries.SyntaxHighlighter.prototype.all;
/** @type {!Object<string, *>} */
Libraries.SyntaxHighlighter.prototype.defaults;
/** @type {function(...?): ?} */
Libraries.SyntaxHighlighter.prototype.highlight = function(){};
/** @type {function(...?): *} */
Libraries.SyntaxHighlighter.prototype.highlight;
/** @type {!Object<string, *>} */
/** @type {function(new:Libraries.SyntaxHighlighterBrush)} */
Libraries.SyntaxHighlighter.prototype.Highlighter;
/** @type {!Object<string, *>} */
/** @type {!Object<string, function(new:Libraries.SyntaxHighlighterBrush)>} */
Libraries.SyntaxHighlighter.prototype.brushes;
/** @type {!Object<string, !RegExp>} */