Skip to main content

code

import {...} from "@motion-canvas/2d/lib/code";

Classes​

Interfaces​

Type Aliases​

CodeDiffer​


CodePoint​

type CodePoint = numbernumber

CodeRange​

type CodeRange = CodePointCodePoint

CodeSelection​

type CodeSelection = CodeRange[]

CodeSignal​

Type Parameters


CodeTag​


CodeTokenizer​

type CodeTokenizer = input: string => string[]

PossibleCodeFragment​

type PossibleCodeFragment = CodeFragmentCodeMetricsRawCodeFragmentstring

PossibleCodeScope​

type PossibleCodeScope = CodeScopeCodeTag[]string

PossibleCodeSelection​

type PossibleCodeSelection = CodeRangeCodeRange[]

Variables​

DefaultHighlightStyle​

const DefaultHighlightStyle: HighlightStyle = ...

Functions​

CODE​

public CODEstrings: TemplateStringsArray...tags: CodeTag[]: CodeTag[]

Parameters


codeSignal​

public codeSignal(): PropertyDecorator

consolidateCodeRanges​

public consolidateCodeRangesranges: CodeRange[]: CodeRange[]

Parameters


defaultDiffer​

Default diffing function utilizing patienceDiff.

Parameters


defaultTokenize​

public defaultTokenizeinput: string: string[]

Default tokenizer function used by ownerless code signals.

Parameters

  • input: string

    The code to tokenize.


extractRange​

public extractRangerange: CodeRangefragments: CodeTag[]: CodeTag[]number

Transform the fragments to isolate the given range into its own fragment.

This function will try to preserve the original fragments, resolving them only if they overlap with the range.

Parameters


findAllCodeRanges​

public findAllCodeRangescode: stringpattern: stringRegExplimit: number = Infinity: CodeRange[]

Find all code ranges that match the given pattern.

Parameters

  • code: string

    The code to search in.

  • pattern: stringRegExp

    Either a string or a regular expression to search for. When a string is passed, it looks for exact matches. When a RegExp object is passed, it will match against it.

  • limit: number = Infinity

    An optional limit on the number of ranges to find.


insert​

public insertcode: string: RawCodeFragment

Create a code fragment that represents an insertion of code.

Can be used in conjunction with edit.

Parameters

  • code: string

    The code to insert.


inverseCodeRange​

public inverseCodeRangeranges: CodeRange[]: CodeRange[]

Parameters


isCodeRange​

public isCodeRangevalue: unknown: value is CodeRange

Parameters


isCodeScope​

public isCodeScopevalue: any: value is CodeScope

Parameters


isPointInCodeRange​

public isPointInCodeRangepoint: CodePointrange: CodeRange: boolean

Parameters


isPointInCodeSelection​

public isPointInCodeSelectionpoint: CodePointselection: CodeSelection: boolean

Parameters


lines​

public linesfrom: numberto?: number: CodeRange

Create a code range that spans the given lines.

Parameters

  • from: number

    The line from which the range starts.

  • to?: number

    The line at which the range ends. If omitted, the range will cover only one line.


metricsToFragment​

public metricsToFragmentvalue: CodeMetrics: CodeFragment

Parameters


parseCodeFragment​

Parameters


parseCodeScope​

public parseCodeScopevalue: PossibleCodeScope: CodeScope

Parameters


parseCodeSelection​

public parseCodeSelectionvalue: PossibleCodeSelection: CodeSelection

Parameters


patienceDiff​

public patienceDiffaLines: string[]bLines: string[]: lineCountDeleted: numberlineCountInserted: numberlines: aIndex: numberbIndex: numberline: string[]

Performs a patience diff on two arrays of strings, returning an object containing the lines that were deleted, inserted, and potentially moved lines. The plus parameter can result in a significant performance hit due to additional Longest Common Substring searches.

Parameters

  • aLines: string[]

    The original array of strings

  • bLines: string[]

    The new array of strings


pointToPoint​

public pointToPointstartLine: numberstartColumn: numberendLine: numberendColumn: number: CodeRange

Create a custom selection range.

Parameters

  • startLine: number

    The line at which the selection starts.

  • startColumn: number

    The column at which the selection starts.

  • endLine: number

    The line at which the selection ends.

  • endColumn: number

    The column at which the selection ends.


remove​

public removecode: string: RawCodeFragment

Create a code fragment that represents a removal of code.

Can be used in conjunction with edit.

Parameters

  • code: string

    The code to remove.


replace​

public replacebefore: stringafter: string: RawCodeFragment

Create a code fragment that represents a change from one piece of code to another.

Can be used in conjunction with edit.

Parameters

  • before: string

    The code to change from.

  • after: string

    The code to change to.


resolveCodeTag​

public resolveCodeTagwrapped: CodeTagafter: booleanisAfter: IsAfterPredicate = after: string

Parameters


resolveScope​

public resolveScopescope: CodeScopeisAfter: IsAfterPredicate: string

Parameters


word​

public wordline: numberfrom: numberlength?: number: CodeRange

Create a code range that highlights the given word.

Parameters

  • line: number

    The line at which the word appears.

  • from: number

    The column at which the word starts.

  • length?: number

    The length of the word. If omitted, the range will cover the rest of the line.