--- name: FXScript fileTypes: - fxscript scopeName: source.fxscript uuid: 43751327-3FD1-4BE7-AD05-136FC552BABA foldingStartMarker: (^|(?<=;)[ \t]*)on[ \t]+(\w+)[ \t]* patterns: - name: meta.function.fxscript captures: "2": name: entity.name.function.fxscript begin: (^|(?<=;)[ \t]*)on[ \t]+(\w+)[ \t]*(?=\([^\)]*\)) end: end(;|;?[ \t]*\n|;?[ \t]*//.*[ \t]*\n) patterns: - begin: \((?=(?i:clip|color|float|image|point|string|value|point3d)) end: \) patterns: - captures: "1": name: support.type.fxscript "2": name: variable.parameter.function.fxscript match: ((?i:clip|color|float|image|point|string|value|point3d))[ \t]+([^,)]+) - include: $self - name: keyword.other.input-control.fxscript begin: (^|(?<=;)[ \t]*)input[ \t]* end: \n patterns: - include: $self - captures: "1": name: variable.other.global.fxscript "2": name: string.quoted.double.fxscript "3": name: support.type.fxscript match: \b(\w+),[ \t]+("[^"]+"),[ \t]+(?i:Angle|CheckBox|Clip|Color|FontList|Label|Point|Popup|RadioGroup|Slider|Text),? comment: Input Controls - name: storage.type.fxscript match: (?i:float|image|point|point3d|region|string|value|YUVcolor)\b comment: Data Types - name: keyword.control.fxscrpt match: \b(?i:if|(end|else)( if)?|for|next|return|repeat( While| With (Counter|List)))\b - name: keyword.other.definition-statements.fxscript match: /b(?i:AlphaType|EffectID|FullFrame|Group|InformationFlag|InvalEntireItem|KeyType|ProducesAlpha|QTEffect|RenderEachFrameWhenStill|WipeCode)/b - name: keyword.operator.arithmetic.fxscrpt match: "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|!==|<=|>=|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=" - name: comment.line.double-slash.fxscript captures: "1": name: punctuation.definition.comment.fxscript match: (//).*$\n? - name: support.constant.colorspace.fxscript match: (?i:kFormatRGB219|kFormatRGB255|kFormatYUV219) - name: constant.numeric.fxscript match: \b[0-9]+(\.[0-9]*)?\b - name: constant.numeric.hex.fxscript match: \b0x([a-fA-F0-9]*)?\b - name: support.constant.color.fxscript match: (?i:kBlack|kBlue|kCyan|kGray|kGreen|kMagenta|kRed|kWhite|kYellow) - name: support.constant.formatting.fxscript match: (?i:k16mm|k24fps|k25fps|k30df|k30fps|k35mm|k60df|k60fps|kFloat2|kFloat4|kFloat6|kInteger|kSize) - name: support.constant.general.fxscript match: (?i:false|kAlpha|kNone|kUndefined|true)\b - name: support.constant.key.fxscript match: (?i:kKeyAdd|kKeyDarken|kKeyDifference|kKeyHardLight|kKeyLighten|kKeyMultiply|kKeyNormal|kKeyOverlay|kKeyScreen|kKeySoftLight|kKeySubtract) - name: support.constant.formatting.fxscript match: (?i:k16mm|k24fps|k25fps|k30df|k30fps|k35mm|k60df|k60fps|kFloat2|kFloat4|kFloat6|kInteger|kSize) - name: support.variable.predeclared.fxscript match: \b(?i:clip1|clip2|dest|duration|exposedBackground|fieldNumber|fieldprocessing|fps|frame|linearRamp|previewing|ratio|renderRes|RGBtoYUV|src1|src2|srcIsGap1|srcIsGap2|srcType1|srcType2|topfield|YUVtoRGB)\b - name: support.constant.text.fxscript match: (?i:kbold|kbolditalic|kcenterjustify|kitalic|kleftjustify|kplain|krightjustify) - name: support.constant.shapes.fxscript match: (?i:kDiamond|kRound|kSquare) - captures: "6": name: entity.name.function.color.chroma-u.fxscript "7": name: entity.name.function.color.chroma-v.fxscript "1": name: entity.name.function.color.alpha.fxscript "2": name: entity.name.function.color.red.fxscript "3": name: entity.name.function.color.green.fxscript "4": name: entity.name.function.color.blue.fxscript "5": name: entity.name.function.color.luma.fxscript match: \b\w+\.(?i:(a)|(r)|(g)|(b)|(y)|(u)|(v))\b - name: string.quoted.double.fxscript endCaptures: "0": name: punctuation.definition.string.end.fxscript begin: "\"" beginCaptures: "0": name: punctuation.definition.string.begin.fxscript end: "\"" patterns: - name: constant.character.escape.fxscript match: \\. - name: support.function.composite.fxscript match: \b(?i:Add|AddOffset|Darken|Difference|ImageAnd|ImageOr|ImageXor|Invert|InvertChannel|Lighten|Matte|Multiply|Overlay|Screen|Subtract|UnMultiply)\b - name: support.function.blit.fxscript match: \b(?i:Blit|BlitRect|MaskCopy|MeshBlit|MeshBlit3D|PagePeel|RegionCopy)\b - name: support.function.clip.fxscript match: \b(?i:GetLimits|GetReelName|GetTimeCode|GetVideo) - name: support.function.distort.fxscript match: \b(?i:BumpMap|Cylinder|Displace|Fisheye|OffsetPixels|PondRipple|Ripple|Wave|Whirlpool)\b - name: support.function.external.fxscript match: \b(?i:Filter|Generator|Transition)\b - name: support.function.geometry.fxscript match: \b(?i:AngleTo|AspectOf|BoundsOf|CenterOf|Convert2dto3d|convert3dto2d|DimensionsOf|DistTo|Grid|Interpolate|Mesh)\b - name: support.function.key.fxscript match: \b(?i:BGDiff|BlueScreen|GreenScreen|RGBColorKey|YUVColorKey)\b - name: support.function.math.fxscript match: \b(?i:Abs|Integer|Sign|Sqrt|Power)\b - name: support.function.parser.fxscript match: \b(?i:BezToLevelMap|ChromaAngleKey) - name: support.function.process.fxscript match: \b(?i:Blend|Blur|BlurChannel|Channel(Copy|Fill|Multiply)|ColorTransform|Convolve|Desaturate|Diffuse|DiffuseOffset|LevelMap|MotionBlur|RadialBlur)\b - name: support.function.shapes.process.fxscript match: \b(?i:CurveTo|DrawSoftDot|FillArc|FillOval|FillPoly|FillRegion|FrameArc|FrameOval|FramePoly|FrameRegion|Line|MakeRect|MakeRegion|OvalRegion|RegionIsEmpty)\b - name: support.function.string.fxscript match: \b(?i:ASCIIOf|ASCIIToSTring|CharsOf|CountTextLines|FindString|getTextLine|GetTimecodeStringFromClip|Length|NumToString|StringToNum) - name: support.function.text.fxscript match: \b(?i:DrawString|DrawStringPlain|MeasureString|MeasureStringPlain|ResetText|SetTextFont|SetTextJustify|SetTextSize|SetTextStyle) - name: support.function.transform.fxscript match: \b(?i:Offset|Offset3d|Outset3d|Rotate|Rotate3d|Scale|Scale3d)\b - name: support.function.undocumented.fxscript match: \b(?i:getNativeAspect|getNativeSize|FilteredBlitRect|BlurChannel_alt)\b - name: support.function.debug.fxscript match: \b(?i:debugtext)\b - name: support.function.utility.fxscript match: \b(?i:Assert|CircleLight|ColorOf|ConvertImage|GetConversionMatrix|GetPixelFormat|Highlight|MatrixConcat|PointTrack|Random(Noise|Seed|Table)?|SetPixelFormat|SysTime|Truncate)\b - name: support.function.joe.fxscript match: \b((?i:absNoInt|ArrayFloatAbs|ArrayFloatAverage|ArrayFloatCount|ArrayFloatCountAll|ArrayFloatFlatten|ArrayFloatIndexExists|ArrayFloatInsertionSort|ArrayFloatMax|ArrayFloatMin|ArrayFloatNormalize|ArrayFloatPrint_r|ArrayFloatQuickSort|ArrayFloatSum|ArrayPointCount|ArrayPointReverse|ArrayPointWrap|BlurChannelInPlace|BoundsOfPoly|ceil|CenterOfPoly|ChannelCopyFit|ChannelMultiplyYUV|ChannelScreen|ChannelView|ColorRampImage|ColorReporter|DeInterlace|DeInterlaceFast|DeInterlaceInterpolate|DifferenceMask|DimensionsOfPoly|DrawGridFrames|ease|easeIn|easeMiddle|easeOut|easeS|ErrorReporter|factorial|factorialabsNoInt|FastRotate|FieldDouble|fitPoly|fitRange|fitRect|floor|gcd|getField|indexExistsPt|isFloatArray|isIndexFloat|isIndexFloatArray|makeLevelMapBez|makeThresholdMapBez|max|min|mirrorRect|NumReporter|PlaceFrame|PointInPoly|pt3dReporter|PtReporter|RandomNoiseScaled|RandomSeedFPS|RGBtoYUVcolor|round|scaleToFit|sumNaturals|T_borderFade|whattype|YUVtoRGBcolor))\b comment: "Joe Maller\xE2\x80\x99s personal FXScript Functions, these will be appearing on the FXScript Reference site someday." foldingStopMarker: end(;|;?[ \t]*|;?[ \t]*//.*[ \t]*) keyEquivalent: ^~F