Skip to content

Commit

Permalink
Merge branch 'master' into issue3059
Browse files Browse the repository at this point in the history
  • Loading branch information
RunDevelopment committed Sep 15, 2021
2 parents 802c4e0 + 746a4b1 commit 7099862
Show file tree
Hide file tree
Showing 109 changed files with 6,869 additions and 144 deletions.
2 changes: 1 addition & 1 deletion components.js

Large diffs are not rendered by default.

33 changes: 32 additions & 1 deletion components.json
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,16 @@
"title": "AutoIt",
"owner": "Golmote"
},
"avisynth": {
"title": "AviSynth",
"alias": "avs",
"owner": "Zinfidel"
},
"avro-idl": {
"title":"Avro IDL",
"alias": "avdl",
"owner": "RunDevelopment"
},
"bash": {
"title": "Bash",
"alias": "shell",
Expand Down Expand Up @@ -441,6 +451,10 @@
"require": "clike",
"owner": "LiarOnce"
},
"gap": {
"title": "GAP (CAS)",
"owner": "RunDevelopment"
},
"gcode": {
"title": "G-code",
"owner": "RunDevelopment"
Expand All @@ -466,6 +480,11 @@
"require": "c",
"owner": "Golmote"
},
"gn": {
"title": "GN",
"alias": "gni",
"owner": "RunDevelopment"
},
"go": {
"title": "Go",
"require": "clike",
Expand Down Expand Up @@ -769,6 +788,10 @@
"title": "Lua",
"owner": "Golmote"
},
"magma": {
"title": "Magma (CAS)",
"owner": "RunDevelopment"
},
"makefile": {
"title": "Makefile",
"owner": "Golmote"
Expand Down Expand Up @@ -797,6 +820,10 @@
"title": "MEL",
"owner": "Golmote"
},
"mermaid": {
"title": "Mermaid",
"owner": "RunDevelopment"
},
"mizar": {
"title": "Mizar",
"owner": "Golmote"
Expand Down Expand Up @@ -1227,6 +1254,10 @@
"title": "Swift",
"owner": "chrischares"
},
"systemd": {
"title": "Systemd configuration file",
"owner": "RunDevelopment"
},
"t4-templating": {
"title": "T4 templating",
"owner": "RunDevelopment"
Expand Down Expand Up @@ -1464,7 +1495,7 @@
},
"highlight-keywords": {
"title": "Highlight Keywords",
"description": "Adds special CSS classes for each keyword matched in the code. For example, the keyword <code>if</code> will have the class <code>keyword-if</code> as well. You can have fine grained control over the appearance of each keyword by providing your own CSS rules.",
"description": "Adds special CSS classes for each keyword for fine-grained highlighting.",
"owner": "vkbansal",
"noCSS": true
},
Expand Down
2 changes: 1 addition & 1 deletion components/prism-asciidoc.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
pattern: /^\|={3,}(?:(?:\r?\n|\r(?!\n)).*)*?(?:\r?\n|\r)\|={3,}$/m,
inside: {
'specifiers': {
pattern: /(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,
pattern: /(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*](?:[<^>](?:\.[<^>])?|\.[<^>])?|[<^>](?:\.[<^>])?|\.[<^>])[a-z]*|[a-z]+)(?=\|)/,
alias: 'attr-value'
},
'punctuation': {
Expand Down
2 changes: 1 addition & 1 deletion components/prism-asciidoc.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

188 changes: 188 additions & 0 deletions components/prism-avisynth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
// http://avisynth.nl/index.php/The_full_AviSynth_grammar
(function (Prism) {

function replace(pattern, replacements) {
return pattern.replace(/<<(\d+)>>/g, function (m, index) {
return replacements[+index];
});
}

function re(pattern, replacements, flags) {
return RegExp(replace(pattern, replacements), flags || '');
}

var types = /clip|int|float|string|bool|val/.source;
var internals = [
// bools
/is(?:bool|clip|float|int|string)|defined|(?:var|(?:internal)?function)?exists?/.source,
// control
/apply|assert|default|eval|import|select|nop|undefined/.source,
// global
/set(?:memorymax|cachemode|maxcpu|workingdir|planarlegacyalignment)|opt_(?:allowfloataudio|usewaveextensible|dwchannelmask|avipadscanlines|vdubplanarhack|enable_(?:v210|y3_10_10|y3_10_16|b64a|planartopackedrgb))/.source,
// conv
/hex(?:value)?|value/.source,
// numeric
/max|min|muldiv|floor|ceil|round|fmod|pi|exp|log(?:10)?|pow|sqrt|abs|sign|frac|rand|spline|continued(?:numerator|denominator)?/.source,
// trig
/a?sinh?|a?cosh?|a?tan[2h]?/.source,
// bit
/(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/.source,
// runtime
/average(?:luma|chroma[uv]|[bgr])|(?:luma|chroma[uv]|rgb|[rgb]|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/.source,
// script
/script(?:name(?:utf8)?|file(?:utf8)?|dir(?:utf8)?)|setlogparams|logmsg|getprocessinfo/.source,
// string
/[lu]case|str(?:toutf8|fromutf8|len|cmpi?)|(?:rev|left|right|mid|find|replace|fill)str|format|trim(?:left|right|all)|chr|ord|time/.source,
// version
/version(?:number|string)|isversionorgreater/.source,
// helper
/buildpixeltype|colorspacenametopixeltype/.source,
// avsplus
/setfiltermtmode|prefetch|addautoloaddir|on(?:cpu|cuda)/.source
].join('|');
var properties = [
// content
/has(?:audio|video)/.source,
// resolution
/width|height/.source,
// framerate
/frame(?:count|rate)|framerate(?:numerator|denominator)/.source,
// interlacing
/is(?:field|frame)based|getparity/.source,
// color format
/pixeltype|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:y2|va?))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|hasalpha|componentsize|numcomponents|bitspercomponent/.source,
// audio
/audio(?:rate|duration|length(?:[fs]|lo|hi)?|channels|bits)|isaudio(?:float|int)/.source
].join('|');
var filters = [
// source
/avi(?:file)?source|opendmlsource|directshowsource|image(?:reader|source|sourceanim)|segmented(?:avisource|directshowsource)|wavsource/.source,
// color
/coloryuv|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:444|422|420|411)|YUY2)|convertbacktoyuy2|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:luma|chroma)|rgbadjust|show(?:red|green|blue|alpha)|swapuv|tweak|[uv]toy8?|ytouv/.source,
// overlay
/(?:colorkey|reset)mask|mask(?:hs)?|layer|merge|overlay|subtract/.source,
// geometry
/addborders|crop(?:bottom)?|flip(?:horizontal|vertical)|letterbox|(?:horizontal|vertical)?reduceby2|(?:bicubic|bilinear|blackman|gauss|lanczos|lanczos4|point|sinc|spline(?:16|36|64))resize|skewrows|turn(?:left|right|180)/.source,
// pixel
/blur|sharpen|generalconvolution|(?:spatial|temporal)soften|fixbrokenchromaupsampling/.source,
// timeline
/trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|out|io)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/.source,
// interlace
/assume(?:frame|field)based|assume[bt]ff|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|rows|fields)|swapfields|weave(?:columns|rows)?/.source,
// audio
/amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|supereq|ssrc|timestretch/.source,
// conditional
/conditional(?:filter|select|reader)|frameevaluate|scriptclip|writefile(?:if|start|end)?|animate|applyrange|tcp(?:server|source)/.source,
// export
/imagewriter/.source,
// debug
/subtitle|blankclip|blackness|colorbars(?:hd)?|compare|dumpfiltergraph|setgraphanalysis|echo|histogram|info|messageclip|preroll|showfiveversions|show(?:framenumber|smpte|time)|stack(?:horizontal|vertical)|tone|version/.source
].join('|');
var allinternals = [internals, properties, filters].join('|');

Prism.languages.avisynth = {
'comment': [
{
// Matches [* *] nestable block comments, but only supports 1 level of nested comments
// /\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|<self>)*\*\]/
pattern: /(^|[^\\])\[\*(?:[^\[*]|\[(?!\*)|\*(?!\])|\[\*(?:[^\[*]|\[(?!\*)|\*(?!\]))*\*\])*\*\]/,
lookbehind: true,
greedy: true
},
{
// Matches /* */ block comments
pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
lookbehind: true,
greedy: true
},
{
// Matches # comments
pattern: /(^|[^\\$])#.*/,
lookbehind: true,
greedy: true
}
],

// Handle before strings because optional arguments are surrounded by double quotes
'argument': {
pattern: re(/\b(?:<<0>>)\s+("?)\w+\1/.source, [types], 'i'),
inside: {
'keyword': /^\w+/
}
},

// Optional argument assignment
'argument-label': {
pattern: /([,(][\s\\]*)\w+\s*=(?!=)/,
lookbehind: true,
inside: {
'argument-name': {
pattern: /^\w+/,
alias: 'punctuation'
},
'punctuation': /=$/
}
},

'string': [
{
// triple double-quoted
pattern: /"""[\s\S]*?"""/,
greedy: true,
},
{
// single double-quoted
pattern: /"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,
greedy: true,
inside: {
'constant': {
// These *are* case-sensitive!
pattern: /\b(?:DEFAULT_MT_MODE|(?:SCRIPT|MAINSCRIPT|PROGRAM)DIR|(?:USER|MACHINE)_(?:PLUS|CLASSIC)_PLUGINS)\b/
}
}
}
],

// The special "last" variable that takes the value of the last implicitly returned clip
'variable': /\b(?:last)\b/i,

'boolean': /\b(?:true|false|yes|no)\b/i,

'keyword': /\b(?:function|global|return|try|catch|if|else|while|for|__END__)\b/i,

'constant': /\bMT_(?:NICE_FILTER|MULTI_INSTANCE|SERIALIZED|SPECIAL_MT)\b/,

// AviSynth's internal functions, filters, and properties
'builtin-function': {
pattern: re(/\b(?:<<0>>)\b/.source, [allinternals], 'i'),
alias: 'function'
},

'type-cast': {
pattern: re(/\b(?:<<0>>)(?=\s*\()/.source, [types], 'i'),
alias: 'keyword'
},

// External/user-defined filters
'function': {
pattern: /\b[a-z_]\w*(?=\s*\()|(\.)[a-z_]\w*\b/i,
lookbehind: true
},

// Matches a \ as the first or last character on a line
'line-continuation': {
pattern: /(^[ \t]*)\\|\\(?=[ \t]*$)/m,
lookbehind: true,
alias: 'punctuation'
},

'number': /\B\$(?:[\da-f]{6}|[\da-f]{8})\b|(?:(?:\b|\B-)\d+(?:\.\d*)?\b|\B\.\d+\b)/i,

'operator': /\+\+?|[!=<>]=?|&&|\|\||[?:*/%-]/,

'punctuation': /[{}\[\]();,.]/
};

Prism.languages.avs = Prism.languages.avisynth;

}(Prism));
Loading

0 comments on commit 7099862

Please sign in to comment.